使用验证框架时,用户无需再进行编码,只要在外部配置文件中指定某个字段需要进行的验证类型,并提供出错误信息即可
1 创建registeredAction ,实现对用户注册的处理
public class RegisterAction extends ActionSupport {
private VoteServiceImpl voteServiceImpl=new VoteServiceImpl();
private String name;
private String password;
private String repassword;
public String register(){
Users users = new Users();
users.setName(name);
users.setPassword(password);
voteServiceImpl.saveOrUpdate(users);
return SUCCESS;
}
省略get()set() 方法
2 在struts.xnl中配置action,
<action name="register" class="action.RegisterAction">
<result name="success">
/success.jsp
</result>
<result name="input">/register.jsp</result>
</action>
3 创建注册页面
<body>
<h3>北大青鸟网上调查系统</h3>
<s:form action="register!register" namespace="/" method="post">
<s:textfield name="name" label="用户名"/>
<s:password name="password" label="密码"/>
<s:password name="repassword" label="确认密码"/>
<s:submit value="立即注册"></s:submit>
</s:form>
</body>
4 创建验证文件,使用验证框架编写验证规则
验证文件要和Action放在同一个包下,并采用 ClassName-validation.xml 或 ClassName-alias-validation.xml 的方式命名 ,其中ClassName 代表Action的类名,alias 代表在struts中配置的Action的名字,
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.3//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名不能为空</message>
</field-validator>
<field-validator type="stringlength">
<param name="maxLength">10</param>
<param name="minLength">6</param>
<message>用户名长度必须在${minLength}和${maxLength}之间 </message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>密码不能为空</message>
</field-validator>
<field-validator type="stringlength">
<param name="minlength">6</param>
<message>密码长度必须大于等于${minlength}</message>
</field-validator>
</field>
<field name="repassword">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>确认密码不能为空</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression">password==repassword</param>
<message>确认密码必须和原密码一致</message>
</field-validator>
</field>
</validators>
<!--EndFragment-->