1. 配置struts-config.xml
i) 在struts-config.xml里面添加一个login action如下
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="error" path="/login.jsp" />
<forward name="success" path="/userList.do" />
</action>
ii) 在struts-config.xml中,添加一个校验插件如下
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
iii)
2. 编写loginForm的校验规则
i) 确定WEB-INF目录下是否有validator-rules.xml,如果没有,请将demo工程里面WEB-INF目录下的validator.xml文件,copy到新工程
ii) 在WEB-INF目录下,新建一个validation.xml文件,如果以前存在,就在代码中添加loginForm的校验规则,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3 //EN" "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<formset>
<form name="loginForm">
<field property="userName" depends="required">
<msg name="required" key="error.required"/>
<arg0 key="login.username"/>
</field>
<field property="password" depends="required,minlength,maxlength">
<!--msg标签指定消息
name指定对应required校验器
key指定提示信息的key
arg?指定提示消息里面的替代
-->
<msg name="required" key="error.required"/>
<arg0 key="login.password"/>
<msg name="minlength" key="error.minlength"/>
<arg0 key="login.password"/>
<arg1 key="${var:minlength}" name="minlength" resource="false"/>
<var>
<var-name>minlength</var-name>
<var-value>6</var-value>
</var>
<msg name="maxlength" key="error.maxlength"/>
<arg0 key="login.password"/>
<arg1 key="${var:maxlength}" name="maxlength" resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>9</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
注意事项:
a) <form>里面的name属性的值,必须同需要校验的form,在struts-config.xml里面定义的form的name值一样
b)
3. 在src目录下的applicationContext.xml文件里面,添加<bean name="/login" class="cn.com.book.demo.struts.action.LoginAction"/>,注册一个新的bean---LoginAction
4. 重新编译工程,发布到web容器,访问login.jsp,就可以演示输入值的校验了