Struts2学习笔记3 ――基于AJAX的表单验证
基于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的验证。