二十二 XML校验器

Struts2提供的校验器及其规则:

分享图片

struts2提供了大量的内置校验器:你可以在xwork-core-2.1.6.jar的com.opensymphony.xwork2.validator.validators下找到如下配置文件:default.xml。里面列出了所有的内置校验器。

required:必填校验器,要求field的值不能为null。

requiredstring:必填字符串校验器,要求field的值不能为null,并且长度大于0

  属性——trim:指定在校验之前是否去除字段串前后的空格。

stringlength:字段长度校验器,要求fidle的值必须在指定的范围内,否则校验失败。

  属性——minLength:指定最小长度。   maxLength:指定量大长度。   trim:指定在校验之前是否去除字段串前后的空格。 

regex:正则表达式校验器,检查衩校验的field是否匹配一个正则表达式。

  属性——expression:指定正则表达式(2.3.15版用regexExpression)。     caseSensitive:指定进行正则表达式匹配时是否区分大小写。

int:整数校验器,要求field的整数值 必须在指定范围内。

  属性——min:指定最小值。   max指定最大值。

double:双精度浮点数校验器,要求field的双精度浮点数值必须在指定范围内。

  属性——min:指定最小值。   max指定最大值。

fieldexpression:字段OGNL表达式校验器。要求field满足一个ognl表达式。

  属性——expression:指定ognl表达式(表达式要写在 <![CDATA[]]> 内)。

email:邮件地址校验器。要求如果field的值非空,则必需是合法的邮件地址。

url:网址校验器。要求如果field的值非空,则必需是合法的 url 地址。

date:日期校验器,要求field的日期值必须在指定范围内

  属性——min:指定最小值。   max指定最大值。

conversion:转换校验器,指定在类型转换失败时,提示错误信息。

visitor:用于校验action中的复合属性。它拽定一个校验文件用于校验复合属性中的属性

expression:OGNL表达式校验器。要求field满足一个ognl表达式。该逻辑表达式基于ValueStack进行求值。该校验器不可用在字段校验器风格的配置中!

  属性——expression:指定ognl表达式(表达式要写在 <![CDATA[]]> 内)。

 

JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
  <%@taglib uri="/struts-tags"  prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<Meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>注册页面</h1>
    <h4><s:fielderror/></h4>
    <form action="${pageContext.request.contextpath }/regist.action" method="post">
   用户名<input type="text" name="username"><br/>
   密  码  :        <input type="password" name="password"><br/>
   确认密码  :    <input type="password" name="repassword"><br/>
   年  龄  :          <input type="text" name="age"><br/>
   邮  箱   :         <input type="text" name="email"><br/>
   电 话   :          <input type="text" name="phone"><br/>
   生  日 :           <input type="text" name="birthday"><br/>
            <input type="submit" value="注册">
        </form>
</body>
</html>

Action类:

 1 public class RegistAction extends ActionSupport {
 2      private String username;
 3      private String password;
 4      private String repassword;
 5      private int age;
 6      private String email;
 7      private String phone;
 8      private Date   birthday;
 9      
10      
11     public String getUsername() {
12         return username;
13     }
14 
15 
16     public void setUsername(String username) {
17         this.username = username;
18     }
19 
20 
21     public String getpassword() {
22         return password;
23     }
24 
25 
26     public void setPassword(String password) {
27         this.password = password;
28     }
29 
30 
31     public String getRepassword() {
32         return repassword;
33     }
34 
35 
36     public void setRepassword(String repassword) {
37         this.repassword = repassword;
38     }
39 
40 
41     public int getAge() {
42         return age;
43     }
44 
45 
46     public void setAge(int age) {
47         this.age = age;
48     }
49 
50 
51     public String getEmail() {
52         return email;
53     }
54 
55 
56     public void setEmail(String email) {
57         this.email = email;
58     }
59 
60 
61     public String getPhone() {
62         return phone;
63     }
64 
65 
66     public void setPhone(String phone) {
67         this.phone = phone;
68     }
69 
70 
71     public Date getBirthday() {
72         return birthday;
73     }
74 
75 
76     public void setBirthday(Date birthday) {
77         this.birthday = birthday;
78     }
79 
80 
81     @Override
82     public String execute() throws Exception {
83         
84         return NONE;
85     }
86 }

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="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">12</param>
          <message>密码需要在6-12之间</message>
          </field-validator>
          </field>
          
          <!-- 校验确认密码 -->
          <field name="repassword">
          <field-validator type="fieldexpression">
          <param name="expression"><![CDATA[(password==repassword)]]></param>
          <message>两次密码不一致</message>
          </field-validator>
          </field>
          
          <!-- 校验年龄 -->
          <field name="age">
          <field-validator type="int">
          <param name="min">18</param>
          <param name="max">40</param>
          <message>年龄必须在18-40之间</message>
          </field-validator>
          </field>
          <!-- 校验邮箱 -->
          <field name="email">
          <field-validator type="email">
          <message>邮箱格式错误</message>
          </field-validator>
          </field>
          
          <!-- 校验电话 -->
          <!-- /^13\d{9}$/ ^13,以13开头\d{9}说明后面13后面只能是9位,$结束 -->
          <field name="phone">
          <field-validator type="regex">
          <param name="expression"><![CDATA[\d(11)]]></param>
          <message>电话不合法</message>
          </field-validator>
          </field>
          
          <!-- 校验出生日期 -->
          <field name="birthday">
          <field-validator type="date">
          <param name="min">1974-01-01</param>
          <param name="max">1996-01-01</param>
          <message>生日不合法</message>
          </field-validator>
          </field>
 </validators>

分享图片

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念