要使用validation进行验证,就必须在Action类中继承ActionSupport类,只
有这样才能使用Struts 2 自带的validation验证机制。
首先,定义一个Action 类名-validation.xml,记住不是下划线,是横线,放在和Action 类相同的
包下。我们做一个登录类的名字是Login,那验证文件名可以为:Login-validation.xml。如果有两个Action方法,
一定要这样定义验证文件名:Action 类名-Action方法名-validation.xml。
Login.jsp文件的内容如下:
<%@ page contentType="text/html; charset=GBK"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page isELIgnored="false"%>
<html>
<style>
.errorMessage {color:red;font-weight:bold}
</style>
<head>
<title>
登录
</title>
</head>
<body>
<s:i18n name="example.properties">
<s:form>
<s:textfield key="username"/>
<s:password key="password" />
<s:submit value="登录"/>
</s:form>
</s:i18n>
</body>
</html>
Login.java文件的内容如下:
/**
* 2008-11-20
*
*/
package example;
import com.opensymphony.xwork2.ActionSupport;
public class Login extends ActionSupport {
private String username, password;
public String execute() throws Exception {
if (this.isInvalid(this.getUsername()))
return INPUT;
if (this.isInvalid(this.getPassword()))
return INPUT;
System.out.println("用户名称:" + getUsername() + ",用户密码" + getPassword());
setMessage("登录成功");
return SUCCESS;
}
private boolean isInvalid(String value) {
return (value == null || value.length() == 0);
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Login-validation.xml文件的内容:
<!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="username">
<field-validator type="requiredstring">
<message>对不起,用户名称不能为空!</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<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>
</validators>
Struts 2 已经内置了一些默认的验证器, 它们定义在类库文件WEB-INF/lib/xwork-2.0.6.jar 文件的包
com.opensymphony.xwork2.validator.validators 下面, 配置这些别名的文件名为default.xml