第一种验证就在action类里面validate()
private String uname, pwd,email;
Get set --->>
@Override
public void validate() {
System.out.println("验证开始");
if ("tom".equalsIgnoreCase(uname)) {
super.addActionError("tom是黑名单!不能登录");
}
if (pwd.length()<6) {
super.addActionError("密码不能小于6位!");
}
//加入是jack无视以上条件
if ("jack".equalsIgnoreCase(uname)) {
super.clearActionErrors();
}
}
@Override
@Action(value = "Login", results = {@Result(location = "index.jsp"),
@Result(name = "input", location = "login.jsp") })
public String execute() throws Exception {
// TODO Auto-generated method stub
return super.execute();
}
Index.jsp两种都需要添加
第二种也要
第二种需要添加一个验证的XML文件
@Action(value = “Login”, results = {@Result(location = “index.jsp”),
@Result(name = “input”, location = “login.jsp”)})
也需要加上这个注解
正常登陆不会报错,不正常登陆会显示丢失result input!
这个文件名称必须和Action 的名字有关联
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
<validators>
<field name="uname">
<field-validator type="requiredstring">
<message>用户名必填.</message>
</field-validator>
<field-validator type="stringlength">
<!--指定user属性最小长度-->
<param name="minLength">4</param>
<!--指定user属性最大长度-->
<param name="maxLength">12</param>
<message>长度限制4到12</message>
</field-validator>
</field>
<field name="pwd">
<field-validator type="requiredstring">
<message>密码必填.</message>
</field-validator>
<field-validator type="stringlength">
<!--指定user属性最小长度-->
<param name="minLength">6</param>
<message>密码长度最小6</message>
</field-validator>
</field>
<field name="email">
<field-validator type="requiredstring">
<message>邮箱必填.</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*]]></param>
<message>邮箱格式非法.</message>
</field-validator>
</field>
</validators>