Struts2的数据校验:

数据的校验分为客户端校验和服务器端两种:

客户端校验:JS完成的校验.(为了提升用户体验.减少用户的输入错误)

服务器端校验:在后台的校验.(必须的.)

手动编码进行校验:

1.编写一个Action,这个Action必须继承ActionSupport.

2.重写validate方法:---针对Action中的所有方法进行校验.

@Override

// Struts2提供的数据校验的方法:

public void validate() {

if(username == null || username.trim().length() == 0){

addFieldError("username", "用户名不能为空!");

}

if(password == null || password.trim().length() == 0){

addFieldError("password", "密码不能为空!");

}

}

***** 如果针对Action中的某一个方法校验呢?校验add方法.

* 编写方法 validateAdd();

使用XML配置校验方式:

1.编写一个Action继承ActionSupport

2.提供对应属性的get方法.---为了在XML中获得到变量的值.

3.在Action所在包下创建一个与Action类名相同的-validation.xml文件.

* 如XML的名称为:RegistAction2-validation.xml

* 引入DTD:xwork-core-2.3.7.jar/xwork-validator-1.0.3.dtd

* XML中的配置:

<validators>

<field name="username">

<field-validator type="requiredstring">

<message>用户名不能为空!(XML)</message>

</field-validator>

</field>

<field name="password">

<field-validator type="requiredstring">

<message>密码不能为空!(XML)</message>

</field-validator>

</field>

</validators>

***** 使用XML的校验方式如何针对某一个方法进行校验?

* 在Action所在的包下创建一个与Action类同名-方法对应的<action>的name-validation.xml

<action name=”regist2” class=”” method=”execute”>

创建的xml的名称为:RegistAction2-regist2-validation.xml

<validators>

<field name="password">

<field-validator type="stringlength">

<param name="minLength">6</param>

<param name="maxLength">12</param>

<message>密码必须在6-12位之间!(XML)</message>

</field-validator>

</field>

</validators>

综合练习:

<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">60</param>

<message>年龄必须在18-60之间</message>

</field-validator>

</field>

<!-- 生日 -->

<field name="birthday">

<field-validator type="date">

<param name="min">1954-01-01</param>

<param name="max">1996-12-31</param>

<message>生日需要在54-96年之间的</message>

</field-validator>

</field>

<!-- 校验邮箱 -->

<field name="email">

<field-validator type="email">

<message>邮箱格式不正确</message>

</field-validator>

</field>

<!-- 电话 -->

<field name="phone">

<field-validator type="regex">

<param name="expression"><![CDATA[^18\d{9}$]]></param>

<message>手机号格式不正确!</message>

</field-validator>

</field>

</validators>

struts2 校验数据的有效性 2种方式的更多相关文章

  1. 基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式

    在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括 ...

  2. 实现web数据同步的四种方式

    http://www.admin10000.com/document/6067.html 实现web数据同步的四种方式 1.nfs实现web数据共享 2.rsync +inotify实现web数据同步 ...

  3. QF——iOS中数据持久化的几种方式

    数据持久化的几种方式: 一.属性列表文件: .plist文件是种XML文件.数组,字典都可以和它互相转换.数组和字典可以写入本地变成plist文件.也可以读取本地plist文件,生成数组或字典. 读取 ...

  4. 数据存储的两种方式:Cookie 和Web Storage

    数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡,这个购物卡里存放了一些你的个人信息,下次你再来这个连锁超市时, ...

  5. RecyclerView 数据刷新的几种方式 局部刷新 notify MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  6. 数据存储的两种方式:Cookie 和Web Storage(转)

    数据存储的两种方式:Cookie 和Web Storage   数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡 ...

  7. (转)基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式

    http://www.cnblogs.com/wuhuacong/p/4085682.html 在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交, ...

  8. PHP中数据类型转换的三种方式

    PHP中数据类型转换的三种方式 PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: 1.(int).(integer):转换成整形2.(float).(double).(real):转换成 ...

  9. linux下实现web数据同步的四种方式(性能比较)

    实现web数据同步的四种方式 ======================================= 1.nfs实现web数据共享2.rsync +inotify实现web数据同步3.rsyn ...

随机推荐

  1. linux标准输入输出及错误输出

    Linux Shell 环境中支持输入输出重定向,用符号"<"和">"来表示. 0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定 ...

  2. yum管理

    一.yum发展与作用     在linux系统维护中管理员经常遇到软件包的依赖问题,有时无法解决,比如你在安装库文件时常出现报错问题,说依赖其它软件包.由于这个问题一直困绕linux的广大爱好者,开源 ...

  3. ImageTragick Exploit & Fix

    ImageMagick是一款广泛流行的图像处理软件,有无数的网站(国内国外都有)使用它来进行图像处理,本周二,ImageMagick披露出了一个严重的0day漏洞,此漏洞允许攻击者通过上传恶意构造的图 ...

  4. Effective Objective-C 2.0 — 第9条:以“类族模式”隐藏实现细节

    第9条:以“类族模式”隐藏实现细节 类族模式可以把实现细节隐藏在一套简单的公共接口后面 系统框架中经常使用类族 从类族的公共抽象基类中继承子类时要当心,若有开发文档,则应首先阅读 “类族”(class ...

  5. 【转】Flume(NG)架构设计要点及配置实践

    Flume(NG)架构设计要点及配置实践   Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合.移动,最后存储到一个中心化数据存储系统中.由原来的Fl ...

  6. RQNOJ659 计算系数

    http://www.rqnoj.cn/problem/659 描述 给定一个多项式(ax + by)^k,请求出多项式展开后x^n * y^m项的系数. 格式 输入格式 共一行,包含5个整数,分别为 ...

  7. CSS浮动属性Float介绍

    #cnblogs_post_body h6 {font-size: 16px;font-weight: bold;} 什么是CSS Float? float 是 css 的定位属性.在传统的印刷布局中 ...

  8. AngularJS 国际化——Angular-translate

    对于一个用户群面向全球的的应用来说,不得不考虑国际化的问题.当然,即便是刚刚起步的小应用,如果有心搞大,也应该提前设计国际化的方案. 本篇讲述使用AngularJS构建的应用的简单国际化方案,准确的说 ...

  9. 【转】GATK使用方法详解(包含bwa使用)

    一.使用GATK前须知事项: (1)对GATK的测试主要使用的是人类全基因组和外显子组的测序数据,而且全部是基于illumina数据格式,目前还没有提供其他格式文件(如Ion Torrent)或者实验 ...

  10. 【PHP面向对象(OOP)编程入门教程】15.static和const关键字的使用(self::)

    static关键字是在类中描述成员属性和成员方法是静态的:静态的成员好处在哪里呢?前面我们声明了“Person”的人类,在“Person”这个类里如果我们加上一个“人所属国家”的属性,这样用“Pers ...