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类:

 public class RegistAction extends ActionSupport {
      private String username;
      private String password;
      private String repassword;
      private int age;
      private String email;
      private String phone;
      private Date   birthday;

     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;
     }

     public String getRepassword() {
         return repassword;
     }

     public void setRepassword(String repassword) {
         this.repassword = repassword;
     }

     public int getAge() {
         return age;
     }

     public void setAge(int age) {
         this.age = age;
     }

     public String getEmail() {
         return email;
     }

     public void setEmail(String email) {
         this.email = email;
     }

     public String getPhone() {
         return phone;
     }

     public void setPhone(String phone) {
         this.phone = phone;
     }

     public Date getBirthday() {
         return birthday;
     }

     public void setBirthday(Date birthday) {
         this.birthday = birthday;
     }

     @Override
     public String execute() throws Exception {

         return NONE;
     }
 }

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="regexExpression"><![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>

二十二 XML校验器的更多相关文章

  1. WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇]

    原文:WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇] 在[上篇]中,我们分别站在消息交换和编程的角度介绍了SOAP Fault和FaultException异常.在服务执行过 ...

  2. 使用Typescript重构axios(二十二)——请求取消功能:收尾

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  3. Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十二】

    <Web 前端开发精华文章推荐>2014年第一期(总第二十二期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML ...

  4. 二十二、OGNL的一些其他操作

    二十二.OGNL的一些其他操作 投影 ?判断满足条件 动作类代码: ^ $   public class Demo2Action extends ActionSupport {     public ...

  5. 备忘录模式 Memento 快照模式 标记Token模式 行为型 设计模式(二十二)

    备忘录模式 Memento   沿着脚印,走过你来时的路,回到原点.     苦海翻起爱恨   在世间难逃避命运   相亲竟不可接近   或我应该相信是缘份   一首<一生所爱>触动了多少 ...

  6. JAVA基础知识总结:一到二十二全部总结

    >一: 一.软件开发的常识 1.什么是软件? 一系列按照特定顺序组织起来的计算机数据或者指令 常见的软件: 系统软件:Windows\Mac OS \Linux 应用软件:QQ,一系列的播放器( ...

  7. (C/C++学习笔记) 二十二. 标准模板库

    二十二. 标准模板库 ● STL基本介绍 标准模板库(STL, standard template library): C++提供的大量的函数模板(通用算法)和类模板. ※ 为什么我们一般不需要自己写 ...

  8. [分享] IT天空的二十二条军规

    Una 发表于 2014-9-19 20:25:06 https://www.itsk.com/thread-335975-1-1.html IT天空的二十二条军规 第一条.你不是什么都会,也不是什么 ...

  9. Bootstrap <基础二十二>超大屏幕(Jumbotron)

    Bootstrap 支持的另一个特性,超大屏幕(Jumbotron).顾名思义该组件可以增加标题的大小,并为登陆页面内容添加更多的外边距(margin).使用超大屏幕(Jumbotron)的步骤如下: ...

随机推荐

  1. springboot笔记-2-.核心的上下文以及配置扫描解析(上)

    前言 上一节中说明了springboot是如何做到自动发现配置的,那么本节看下spring如何创建上下文并解析这些配置,加载我们注册到容器管理中的类.上节已经成功的创建了SpringApplicati ...

  2. iptables详解(2):四表五链

    关于iptables中“四表五链”,我们今天来好好唠唠: 1.表的概念: 我们把具有相同功能的规则的集合叫做"表",所以说,不同功能的规则,我们可以放置在不同的表中进行管理,而ip ...

  3. 《C语言程序设计》王希杰 课后答案

    仅供参考,好好学习,不要骗自己哦! 在线预览 预览链接: https://www.kdocs.cn/l/shOy4IgXl 下载: 链接1: http://t.cn/AiBK2mgJ 链接2: htt ...

  4. MySQL 整型

    MySQL中我们建表的时候,类型可以用bigint(20), 这是什么意思呢? 首先我们看bigint, MySQL的整型类型有这样几种: 类型      占用字节 tinyint        1 ...

  5. centos7下Maven Java selenium3环境搭建

    centos7下Maven Java selenium3环境搭建 一.Jdk安装 我这里用的是open-jdk. [adawang@localhost src]$ sudo yum search op ...

  6. 在linux环境下python与C++混合编程

    参考:在linux环境下编译C++ 程序 linux下python3调用c代码或者python3调用c++代码 https://blog.csdn.net/u013179327/article/det ...

  7. LeetCode练题——88. Merge Sorted Array

    1.题目 88. Merge Sorted Array——Easy Given two sorted integer arrays nums1 and nums2, merge nums2 into  ...

  8. Vue如何用虚拟dom进行渲染view的

    前提 vue版本:v2.5.17-beta.0 触发render vue在数据更新后会自动触发view的render工作,其依赖于数据驱动:在数据驱动的工作下,每一个vue的data属性都被监听,并且 ...

  9. Java日志介绍(1)-java.util.logging.Logger

    java.util.logging.Logger是JDK自带的日志工具,其简单实现了日志的功能,不是很完善,所以在实际应用中使用的比较少.本文直接用代码演示其使用方法,文中所使用到的软件版本:Java ...

  10. Apache POI详解

    一 :简介 开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中,操作Excel目前有两个框架,一个是apache 的poi, 另一个是 Java Excel Apache ...