import com.opensymphony.xwork2.ActionSupport;
public class NewValidateAction extends ActionSupport
{
private String msg; // 必须输入
private int age; // 在13和20之间
public String getMsg()
{
return msg;
}
public void setMsg(String msg)
{
this.msg = msg;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
}
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="demo" extends="struts-default" namespace="/test">
<action name="new_validate" class="action.NewValidateAction">
<result name="input">/validate_form.jsp</result>
<result name="success">/validate_form.jsp</result>
</action>
</package>
</struts>
这是一个基于XML的配置文件,和struts1.x中的validator框架的验证规则配置文件类似。但一般放到和要验证的.class文件在同一目录下,而且配置文件名要使用如下两个规则中的一个来命名:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http:///xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="msg">
<field-validator type="requiredstring">
<message>请输入信息</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">13</param>
<param name="max">20</param>
<message>
必须在 13至20之间
</message>
</field-validator>
</field>
</validators>
<%@ taglib prefix="s" uri="/struts-tags" %>
<link rel="stylesheet" type="text/css" href="<s:url value="/styles/styles.css"/>">
<html>
<head>
<title>验证数据</title>
</head>
<body>
<s:form action="new_validate" namespace="/test" >
<s:textfield name="msg" label="姓名" />
<s:textfield name="age" label="年龄"/>
<s:submit/>
</s:form>
</body>
</html>
<s:form action="/test/new_validate" >
http://localhost:8080/validation/validate_form.jsp

有一类特殊的属性,即这个属性的类型是另外一个JavaBean,如有一个User类,代码如下:
public class User
{
private String name;
private int age;
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;
}
}
在NewValidateAction类中加一个user属性,代码如下:
import com.opensymphony.xwork2.ActionSupport;
import data.User;
public class NewValidateAction extends ActionSupport
{
private String msg;
private int age;
private User user;
public String getMsg()
{
return msg;
}
public void setMsg(String msg)
{
this.msg = msg;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
public User getUser()
{
return user;
}
public void setUser(User user)
{
this.user = user;
}
}
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http:///xwork/xwork-validator-1.0.2.dtd">
<validators>

<field name="user">
<field-validator type="visitor">
<param name="context">abc</param>
<param name="appendPrefix">true</param>
<message>User:</message>
</field-validator>
</field>
</validators>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http:///xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<message>请输入name</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">5</param>
<param name="max">20</param>
<message>
必须在 5至20之间
</message>
</field-validator>
</field>
</validators>
<s:textfield name="msg" label="姓名" />
<s:textfield name="age" label="年龄"/>
<s:textfield name="" label="姓名1" />
<s:textfield name="user.age" label="年龄1"/>
<s:submit/>
</s:form>


















