还有一种方式验证就是使用xml验证文件,其命名格式 为:ActionClass-validation.xml。如果我们的Action为LoginAction,则xml为LoginAction-validation.xml。并放在其相应包下。如果此时需要配置文件来存放错误信息,命名为:ActionClass.properties.并放在相应包下。
登录验证定义LoginAction-validation.xml如下。
<?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="userName">
<field-validator type="requiredstring">
<message>User Name is required.</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message key="password.required" />
</field-validator>
</field>
</validators>
其中<message key="password.required" />表示使用配置文件,LoginAction.properties内容如下:
password.required=Password is required.
现在我们在LoginAction中就不需要validator方法了;定义如下:
package com.zcl.struts.validate;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private String userName ;
private String password ;
public LoginAction(){}
public String execute(){
return SUCCESS ;
}
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.jsp页面,如果什么都不输入,结果如下:
如果都有输入值则登录成功。