最近在研究Struts2的验证框架,写写它的实现步骤,对大家进一步了解Struts2的验证有一定的帮助。
- 用户无需编码,在外部配置文件中指定某个字段的验证类型,并提供出错信息即可
- 使用验证框架可以减轻开发者负担,提高开发效率
下面通过一个实例来说明:
先看需求:完成一个注册页面的验证,需求如下:
- 用户名:不能为空,长度在6和10之间
- 密码:不能为空,密码长度>=6
- 确认密码:必须和密码相同
- 电话:不能为空,符合电话号码格式
- 用户姓名:不能为空,长度在2和4之间
public class RegisterAction extends ActionSupport {
private User user; // 用户信息
private String repassword; // 确认密码
private UserBiz userBiz = new UserBizImpl();
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String getRepassword() {
return repassword;
}
public void setRepassword(String repassword) {
this.repassword = repassword;
}
// 验证方法
public void validateExecute() {
if (!userBiz.validate(user.getName().trim())) {
addFieldError("user.name", "用户名存在");
}
}
// 注册方法
public String execute() {
if (!userBiz.register(user)) {
this.addFieldError("user.name", "注册失败");
return INPUT;
}
return SUCCESS;
}
}<!-- 用户注册 -->
<action name="register" class="cn.jbit.houserent.action.RegisterAction">
<result name="input">/page/register.jsp</result>
<result>/page/success.jsp</result>
</action><s:form action="register">
<s:textfield name="user.name" label="用户名" />
<s:password name="user.password" label="密码" />
<s:password name="repassword" label="确认密码" />
<s:textfield name="user.telephone" label="电话" />
<s:textfield name="user.username" label="用户姓名" />
<s:submit value="立即注册"></s:submit>
</s:form>
<?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="user.name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名不能为空</message>
</field-validator>
</field>
<field name="user.password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<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>
<field name="repassword">
<field-validator type="fieldexpression">
<param name="expression">
user.password==repassword
</param>
<message>密码和确认密码必须相同</message>
</field-validator>
</field>
<field name="user.telephone">
<field-validator type="requiredstring">
<message>电话号码不能为空</message>
</field-validator>
<field-validator type="regex">
<param name="expression">
^(\d{3,4}-)+(\d{7,8})$
</param>
<message>电话号码格式不正确</message>
</field-validator>
</field>
</validators>
通过以上的步骤之后,就可以实现Struts2的验证功能。
440



被折叠的 条评论
为什么被折叠?



