如何使用struts的validator提供表单验证
1、创建一个web项目;
2、给项目添加struts支持;
3、创建一个login.jsp页面;
<html:form action=”user.do” method=”post” focus=”user.uname”>
<table>
<tr>
<td>Login:</td>
<td><html:text property=”user.uname” />
<html:errors property=”user.uname” /><!—显示错误信息 à</td>
</tr>
<tr>
<td>PassWord:</td>
<td><html:password property=”user.upass”/>
<html:errors property=”user.upass” /><!—显示错误信息 à</td>
</tr>
<tr>
<td colspan=”2″><html:submit/></td>
</tr>
</table>
</html:form>
4、 创建一个继承ValidatorForm的form bean特别注意:不能重写validate()方法(如果重写了此方法就会不通过srtuts的验证);在form bean中写入属性private User user = new User();然后添加getter和setter方法;
5、创建一个Action,在struts-config.xml中配置如下:
<action
attribute=”userForm”
name=”userForm”//form bean名称
parameter=”op”//DispatchAction的处理方法名
path=”/user” //请求的路径
input=”/login.jsp” //输入内容的jsp路径
validate=”true” //是否用validate验证为true
scope=”request”//作用域为request
type=”com.aptech.web.action.UserAction”> //Action的类型
<forward name=”index” path=”/index.jsp” /> //一个jsp导向
</action>
如果要使用验证那么struts-config.xml中必须填写Input=”/login.jsp”; //如果没有这句,验证没有通过后,将会无法跳转到输入页面Validate=”true”; //如果没有这句,将会不进行struts验证
6、创建资源文件并部署资源文件:在struts文件中部署资源文件: <message-resources parameter=”com.zhangjie.struts.ApplicationResources” />1)在资源文件中写入msg.uname = user name; msg.upass = user pass;2)将validator-rules.xml中的被注释掉的东东都拷到资源文件中
7、创建validations.xml文件并配置如下:
<formset>
<!– 定义要验证的表单 name:与要验证的表单同名–>
<form name=”userForm”>
<field property=”user.uname” depends=”required”>
<arg key=”msg.uname”/>
<!—其中key对应资源文件中的msg.uname,作为表单验证errors.required中传递的参数 –>
<!—其中property的属性为userForm中的属性–>
<!—其中depends为验证类型 –>
</field>
<field property=”user.upass” depends=”required”>
<arg key=”msg.upass”/>
</field>
</form>
</formset>
8、加载validation插件<plug-in className=”org.apache.struts.validator.ValidatorPlugIn”>
<set-property
property=”pathnames”
value=”/WEB-INF/validator-rules.xml,/WEB-INF/validations.xml”/>
</plug-in>