一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

害怕别人乱输数据吗?提高你的数据校验功能-AJAX输入校验(8)

时间:2008-04-28 编辑:简简单单 来源:一聚教程网

7.4  AJAX输入校验

Struts 2框架在使用客户端校验的时候,由于需要转换为JavaScript脚本,所以并不是所有服务器端的校验规则均能转换为客户端校验,而AJAX校验则可以使用所有的服务器端校验规则。

AJAX是一种新兴的技术,主要特点是可以异步处理用户请求,例如,用户在填写一个表单的时候,当填写完一个文本框后,该文本框失去焦点的同时,会异步地完成同服务器的交互,提示校验信息,而不是所有表单填写完后单击“提交”按钮时显示校验信息。

在这里笔者简单演示一个示例,让读者体验AJAX的特点,关于AJAX的详细内容,读者可以参考本书后面的介绍。

7.4.1  配置AJAX环境

下面笔者按照建立顺序,引导读者配置AJAX环境。


1.安装dwr-1.1-beta-3.jar文件

Struts 2框架要整合AJAX,需要一个JAR文件,读者可以在Struts 2struts2-showcase-2.0.11应用示例中找到,在该示例中lib目录下有一个dwr-1.1-beta-3.jar文件,将该文件复制到当前Web应用的WEB-INFlib目录下。

注意

struts2-showcase-2.0.11为一个war压缩文件,读者可以解压该文件来获得dwr-1.1- beta-3.jar

 


2dwr.xml文件

建立一个dwr.xml配置文件,该文件保存在同web.xml相同的目录下,在该文件中加入如下内容:

    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"

    "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

   

       

           

       

       

   

   

       

        import java.util.Map;

        import org.apache.struts2.validators.DWRValidator;

        DWRValidator.doPost(String, String, Map);

        ]]>

   

说明

该文件内容为固定格式。

 


3web.xml文件

web.xml文件中加入相关配置内容,修改后的内容如代码7.20所示。


代码7.20  加入AJAX配置的web.xml

    xmlns="http://java.sun.com/xml/ns/j2ee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    Struts Blank

   

   

        struts2

       

       

            org.apache.struts2.dispatcher.FilterDispatcher

       

   

   

       

        struts2

        /*

   

   

   

   

        dwr

       

        uk.ltd.getahead.dwr.DWRServlet

       

       

            debug

            true

       

   

   

   

        dwr

        /dwr/*

   

   

        index.html

   

至此,一个简单的AJAX环境便搭建完成了。

7.4.2  建立业务控制器

建立一个简单的业务控制器实现类,如代码7.21所示。


代码7.21  AJAX校验示例的业务控制器

package ch7;

import java.util.Date;

import com.opensymphony.xwork2.ActionSupport;

public class Reg_ajax_Action extends ActionSupport {

    private String name;

    private int age;

    private Date birthday;

    //属性的gettersetter方法

 public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public int getAge() {

        return age;

    }

    public void setAge(int age) {

        this.age = age;

    }

    public Date getBirthday() {

        return birthday;

    }

    public void setBirthday(Date birthday) {

        this.birthday = birthday;

    }

}

Action非常简单,只是定义了3个相应的属性。在配置文件中加入如下内容:

            /ch7/reg-ajax.jsp

7.4.3  建立校验规则文件

建立一个Reg_ajax_Action-validation.xml校验规则文件,如代码7.22所示。


代码7.22  AJAX校验示例的校验规则文件

1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

   

       

            用户名不能为空!

       

   

   

       

            13

            19

            年龄必须在1319岁之间

       

   

   

       

       

           

            1990-01-01

            2006-01-01

            生日必须在${min}${max}之间

       

   

说明

该校验规则文件也是一个标准的校验规则文件。

 

7.4.4  建立JSP视图

建立一个reg-ajax.jsp视图文件,如代码7.23所示。


代码7.23  AJAX校验示例的JSP视图

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ taglib prefix="s" uri="/struts-tags" %>

    Validation - Basic

    ajax"/>

ajax">

    用户名" name="name"/>

    年龄