基于AJAX的表单验证需要先安装DWR,在http://getahead.ltd.uk/dwr/download上下载DWR 2.0 RC 2,将dwr.jar拷贝到WEB-INF/lib目录下
1.修改web.xml,另入DWR支持:
2.在WEB-INF目录下新建dwr.xml文件:
3.在login.jsp中添加AJAX验证支持,修改后的login.jsp内容如下:
注意上面的<s:head theme="ajax" />,它为页面使用AJAX验证准备相应的Scripts代码。
4.配置validation.xml:
这样就为JSP页面提供了基于AJAX的验证。
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的验证。