Strust2的XML验证器提供了多种验证方式。
以下通过一个实例演示以下这些验证。
1.创建action类:
public class EmpAction extends ActionSupport {
private String name;
private int age;
private double salary;
private String email;
private String homepage;
@Override
public String execute() throws Exception {
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getHomepage() {
return homepage;
}
public void setHomepage(String homepage) {
this.homepage = homepage;
}
}
2.创建[action-class]-validation.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<message>The name is required.</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">3</param>
<param name="maxLength">10</param>
<message>
The name's length should be between 3 and 10.
</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">30</param>
<param name="max">60</param>
<message>The age should between 30 and 60.</message>
</field-validator>
</field>
<field name="salary">
<field-validator type="double">
<param name="minExclusive">1000.0</param>
<param name="maxExclusive">20000.0</param>
<message>
Salary needs to be between ${minExclusive} and ${maxExclusive}.
</message>
</field-validator>
</field>
<field name="email">
<field-validator type="email">
<message>
Please input a valid email.
</message>
</field-validator>
</field>
<field name="homepage">
<field-validator type="url">
<message>
Please input a valid homepage url.
</message>
</field-validator>
</field>
</validators>
3.index.jsp页面:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
</head>
<body>
<s:form action="emp" method="POST">
<s:textfield name="name" label="Name" size="20" />
<s:textfield name="age" label="Age" size="20" />
<s:textfield name="salary" label="Salary" size="20" />
<s:textfield name="email" label="Email" size="20" />
<s:textfield name="homepage" label="HomePage" size="20" />
<s:submit name="submit" label="Submit" align="center" />
</s:form>
</body>
4.struts.xml文件要注意的是需要有result="input"结果的配置,在此不贴出来了。
注意:XML验证器提供了对email与url的验证,可以自动对用户提交的email与url地址进行有效性验证。