基于AJAX的表单验证需要先安装DWR,在http://getahead.ltd.uk/dwr/download上下载DWR 2.0 RC 2,将dwr.jar拷贝到WEB-INF/lib目录下
1.修改web.xml,另入DWR支持:
<servlet>
        <servlet-name>dwr</servlet-name>
        <servlet-class>
            org.directwebremoting.servlet.DwrServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>dwr</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>

2.在WEB-INF目录下新建dwr.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
    <allow>
        <create javascript="validator" creator="new">
            <param name="class"
                value="org.apache.struts2.validators.DWRValidator" />
        </create>
        <convert converter="bean"
            match="com.opensymphony.xwork2.ValidationAwareSupport" />
    </allow>

    <signatures>
        <![CDATA[
        import java.util.Map;
        import org.apache.struts2.validators.DWRValidator;
        DWRValidator.doPost(String, String, Map<String, String>);
        ]]>
    </signatures>
</dwr>

3.在login.jsp中添加AJAX验证支持,修改后的login.jsp内容如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
    <head>
        <s:head theme="ajax" />
        <title>登录页面</title>
    </head>
    <body>
        <s:form action="login" method="post" theme="ajax">
            <s:textfield label="用户名" name="username" />
            <s:textfield label="密码" name="password" />
            <s:submit value="登录" />
        </s:form>
    </body>
</html>

注意上面的<s:head theme="ajax" />,它为页面使用AJAX验证准备相应的Scripts代码。

4.配置validation.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC 
"-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
    <field name="username">
        <field-validator type="requiredstring">
            <message>请输入用户名</message>
        </field-validator>
    </field>

    <field name="password">
        <field-validator type="requiredstring">
            <message>请输入密码</message>
        </field-validator>
        <field-validator type="stringlength">
            <param name="minLength">6</param>
            <param name="maxLength">10</param>
            <message>密码长度只能在 ${minLength} 和 ${maxLength} 之间.</message>
        </field-validator>
    </field>
</validators>


这样就为JSP页面提供了基于AJAX的验证。
评论
发表评论

您还没有登录,请登录后发表评论

rainlife
搜索本博客
我的相册
0b62aec5-97b6-35bb-8fce-a1dae18a8b4e-thumb
image008
共 11 张
存档
最新评论