验证器规则:
1. 命名规则 : Action的名字-validation.xml
2. 继承的层次结构和接口由Action类来实现。Xwork搜索Action的继承树来查找Action的父类和实现的接口的默认验证。
3. 验证器可以组合使用
4. 路径:与验证的action同一路径
Struts2默认的验证功能 :
下面列出struts2验证框架的验证器 :
1. 数据转换验证器
2. Date类型验证器
3. Double类型验证器
4. Email格式验证器
5. 表达式验证器
6. 字段表达式验证器
7. Int类型验证器
8. 正则表达式验证器
9. Required类型验证器
10. Requiredstring类型验证器
11. Stringlength验证器
12. URL验证器
13. Visitor验证器
下面将以Struts2中的RequiredString验证器为例.
RequiredString验证器检查String字段是不是null且长度是不是大于0(也就是说不能是"").在执行长度检查之前,trim参数就确定了字符串.默认情况下,字符串都会被修整(trim,除去字符串前后的空格)
如果用户在输入域什么都不填写就提交了表单, requiredString验证器就会生成错误信息.之后错误信息将显示给用户.
本例通过用户输入他的/她的user name的简单的数据输入表单来演示如何使用struts2的RequiredString验证器.按照下面的步骤创建例子程序 :
第一步 : 创建并添加下面的代码到struts.xml文件
<action name="stringValidation" class="net.roseindia.StringVaLidationAction">
<result name="input">/pages/stringInputForm.jsp</result>
<result name="error">/pages/stringInputForm.jsp</result>
<result>/pages/stringSuccess.jsp</result>
</action>
第二步 : 创建输入表单
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Input form</title>
</head>
<body>
<s:fielderror/><!—全部验证错误信息将显示在这里-->
<s:form method="POST" action="stringValidation">
<s:textfield label="Enter User Number" name="username" maxlength="10" />
<s:submit />
</s:form>
</body>
</html>
第三步 : 创建Action类
public class StringVaLidationAction extends ActionSupport{
private String username;
public String execute() throws Exception{
if (getUsername() != null){
return SUCCESS;
}
else{
return ERROR;
}
}
public void setUsername(String username){
this.username = username;
}
public String getUsername(){
return username;
}
}
第四步 : 创建验证器
验证器文件的格式应该是<ActionClassName>-validation.xml或者<ActionClassName>-<ActionAliasName>-validation.xml.
验证器文件放到相关联的action同一路径下
<?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"><!—action内需要验证的字段名-->
<field-validator type="requiredstring">
<param name="trim">true</param><!—是否trim字符串-->
<message>请输入用户名</message>
<!--验证未通过时的提示信息—>
</field-validator>
</field>
</validators>
验证未通过时提示信息
请输入用户名
其它校验器
URL验证器
<field name="url">
<field-validator type="url">
<message>Please enter a valid url</message>
</field-validator>
</field>
email验证器
<field name="myEmail">
<field-validator type="email">
<message>Please enter a valid email</message>
</field-validator>
</field>
date验证器
<field name="joiningdate">
<field-validator type="date">
<param name="min">01/01/1990</param>
<param name="max">01/01/2000</param>
<message>Joining date must be supplied between ${min} and ${max}</message>
</field-validator>
</field>
Double类型验证器
<field name="percentagemarks">
<field-validator type="double">
<param name="minInclusive">20.1</param>
<param name="maxInclusive">50.1</param>
<message>Percentage marks need to between
${minInclusive} and ${maxInclusive}</message>
</field-validator>
</field>
int验证器
<field name="userinput">
<field-validator type="int">
<param name="min">10</param>
<param name="max">80</param>
<message>Number needs to between ${min} and ${max} </message>
</field-validator>
</field>
stringlength验证器
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">18</param>
<message>密码长度只能在${minLength}和${maxLength}之间</message>
</field-validator>
1. 命名规则 : Action的名字-validation.xml
2. 继承的层次结构和接口由Action类来实现。Xwork搜索Action的继承树来查找Action的父类和实现的接口的默认验证。
3. 验证器可以组合使用
4. 路径:与验证的action同一路径
Struts2默认的验证功能 :
下面列出struts2验证框架的验证器 :
1. 数据转换验证器
2. Date类型验证器
3. Double类型验证器
4. Email格式验证器
5. 表达式验证器
6. 字段表达式验证器
7. Int类型验证器
8. 正则表达式验证器
9. Required类型验证器
10. Requiredstring类型验证器
11. Stringlength验证器
12. URL验证器
13. Visitor验证器
下面将以Struts2中的RequiredString验证器为例.
RequiredString验证器检查String字段是不是null且长度是不是大于0(也就是说不能是"").在执行长度检查之前,trim参数就确定了字符串.默认情况下,字符串都会被修整(trim,除去字符串前后的空格)
如果用户在输入域什么都不填写就提交了表单, requiredString验证器就会生成错误信息.之后错误信息将显示给用户.
本例通过用户输入他的/她的user name的简单的数据输入表单来演示如何使用struts2的RequiredString验证器.按照下面的步骤创建例子程序 :
第一步 : 创建并添加下面的代码到struts.xml文件
<action name="stringValidation" class="net.roseindia.StringVaLidationAction">
<result name="input">/pages/stringInputForm.jsp</result>
<result name="error">/pages/stringInputForm.jsp</result>
<result>/pages/stringSuccess.jsp</result>
</action>
第二步 : 创建输入表单
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Input form</title>
</head>
<body>
<s:fielderror/><!—全部验证错误信息将显示在这里-->
<s:form method="POST" action="stringValidation">
<s:textfield label="Enter User Number" name="username" maxlength="10" />
<s:submit />
</s:form>
</body>
</html>
第三步 : 创建Action类
public class StringVaLidationAction extends ActionSupport{
private String username;
public String execute() throws Exception{
if (getUsername() != null){
return SUCCESS;
}
else{
return ERROR;
}
}
public void setUsername(String username){
this.username = username;
}
public String getUsername(){
return username;
}
}
第四步 : 创建验证器
验证器文件的格式应该是<ActionClassName>-validation.xml或者<ActionClassName>-<ActionAliasName>-validation.xml.
验证器文件放到相关联的action同一路径下
<?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"><!—action内需要验证的字段名-->
<field-validator type="requiredstring">
<param name="trim">true</param><!—是否trim字符串-->
<message>请输入用户名</message>
<!--验证未通过时的提示信息—>
</field-validator>
</field>
</validators>
验证未通过时提示信息
请输入用户名
其它校验器
URL验证器
<field name="url">
<field-validator type="url">
<message>Please enter a valid url</message>
</field-validator>
</field>
email验证器
<field name="myEmail">
<field-validator type="email">
<message>Please enter a valid email</message>
</field-validator>
</field>
date验证器
<field name="joiningdate">
<field-validator type="date">
<param name="min">01/01/1990</param>
<param name="max">01/01/2000</param>
<message>Joining date must be supplied between ${min} and ${max}</message>
</field-validator>
</field>
Double类型验证器
<field name="percentagemarks">
<field-validator type="double">
<param name="minInclusive">20.1</param>
<param name="maxInclusive">50.1</param>
<message>Percentage marks need to between
${minInclusive} and ${maxInclusive}</message>
</field-validator>
</field>
int验证器
<field name="userinput">
<field-validator type="int">
<param name="min">10</param>
<param name="max">80</param>
<message>Number needs to between ${min} and ${max} </message>
</field-validator>
</field>
stringlength验证器
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">18</param>
<message>密码长度只能在${minLength}和${maxLength}之间</message>
</field-validator>