- 浏览: 229076 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (105)
- JFreeChart (3)
- DbUtil (1)
- Struts2 (17)
- Ruby or Rails (4)
- Eclipse插件 (2)
- 英文一角 (2)
- IT生活 (7)
- 社会盘点 (0)
- Maven3 (3)
- Java (17)
- Jquery (12)
- Hibernate (8)
- Ajax (4)
- Oracle (2)
- SSH2 OA项目 (4)
- jsptags分页插件 (1)
- Javascript (4)
- Ubuntu (4)
- java Utils (1)
- JPA (2)
- sitemesh (1)
- Css (1)
- spring (3)
- 杂记 (5)
- Hibernate3连接池的配置 (0)
最新评论
-
天使建站:
http://www.aijquery.cn/Html/bia ...
jQuery获取及设置单选框,多选框,文本框内容 -
zjxkeven:
不错 不知道好不好用
java服务器状态监控实现 -
根号九加一:
能否发一份给我呢 邮箱是 zmh958@qq.com 谢谢! ...
SSH2项目搭建 -
23843492:
能否发一份给我:23843492@qq.com
SSH2项目搭建 -
jiangdaxian2003:
LZ求代码,谢谢,15914380151@139.com
SSH2项目搭建
这些天一直在赶手上做的那个游戏平台项目.怎么说呢,狭小的空间范围内碌碌无为的忙碌着.隔三两头时不时还遭到老大的"鄙视".经过几天的奔跑,经过大家几天的努力,完成了小阶段性的目标.下午的时间也终于可闲下来了.认真来看了下代码的流程.代码的实现,代码的风格.虽然不是很好,但也是我一个一个字母敲上去的.实践是检验真理的唯一途径,实践才是一切标准.实践才能为之提高,实践才能为之进步.但大到一季度,小到一天,不同阶段,不同时期的总结是人一生不可或缺的过程.总结中成长,成长中实现人生价值.
今天就来说说struts2的验证框架(validate).Struts校验框架提供了一种不用编写代码,只需修改配置文件即可对输入进行校验的功能。代码方式校验,即重写validate()方法。实际应用中,validate()与校验框架一般只选其一。
1.struts对于数据的校验
int
整数
double
实数
expression
两数的关系比较
email
邮箱地址
url
检查输入是否为url格式
visitor
使用预定义的validators进行验证
conversion
检查是否将出现数据转换错误
regex
检查是否能匹配到正则表达式
required
用于检查值是否为null
requiredstring
用于检查string是否为null或空
stringlength
检查string的长度是否在某个范围
date
检查date的范围
2.说明:校验框架有两种校验方式:field和validator, 字段校验一般用field 非字段一般用validator(其实两者都可以)
A.field校验:先指定需要校验的属性,在指定校验方式.
B.validator校验:先指定校验方式,再指定需要校验的属性.两种方式是等价的.
C.验证错误将默认产生FieldError.
D.short-circuit="true":一个校验失败,是否是继续执行后续校验.
E.对于相同属性的FieldError,validate()方法中的验证和RegisterAction-validation.xml中的验证都会执行,并且FieldError都会显示。
执行顺序: RegisterAction-validation.xml => validate()
只对action中的某个方法进行校验
校验顺序
如果既提供了RegisterAction-validation.xml,又提供了RegisterAction-add-validation.xml
Struts2会先校验RegisterAction-validation.xml,然后再去校验RegisterAction-add-validation.xml这两个都会被调用
建议:
当有多个逻辑方法时,就不要提供RegisterAction-validation.xml
只提供相应方法的xml文件,如:RegisterAction-execute-validation.xml
3.Struts2客户端校验
设置struts标签<s:form>中validate="true"。这样就会根据RegisterAction-validation.xml生成页面Javascript,在客户端执行校验
4.FieldError和ActionError的实现
a.真正存放field级别错误信息的对象是LinkedHashMap。
b.该LinkedHashMap的key是String类型的,value是ArrayList类型,所以同一个key可以对应多个错误消息。
c.对于Action级别的错误信息,实际上是放置在ArrayList中的
今天就来说说struts2的验证框架(validate).Struts校验框架提供了一种不用编写代码,只需修改配置文件即可对输入进行校验的功能。代码方式校验,即重写validate()方法。实际应用中,validate()与校验框架一般只选其一。
1.struts对于数据的校验
int
整数
double
实数
expression
两数的关系比较
邮箱地址
url
检查输入是否为url格式
visitor
使用预定义的validators进行验证
conversion
检查是否将出现数据转换错误
regex
检查是否能匹配到正则表达式
required
用于检查值是否为null
requiredstring
用于检查string是否为null或空
stringlength
检查string的长度是否在某个范围
date
检查date的范围
<validators> <validator type="requiredstring"> <param name="fieldName">buyer.username</param> <param name="trim">true</param> <message>必须输入用户名</message> </validator> <validator type="regex"> <param name="fieldName">buyer.username</param> <param name="expression"><![CDATA[(\w{6,20})]]></param> <message>用户名长度必须为6至20之间</message> </validator> <validator type="requiredstring"> <param name="fieldName">buyer.password</param> <param name="trim">true</param> <message>必须输入密码</message> </validator> <validator type="regex"> <param name="fieldName">buyer.password</param> <param name="expression"><![CDATA[(\w{6,20})]]></param> <message>密码长度必须为6至20之间</message> </validator> <validator type="regex"> <param name="fieldName">buyer.repassword</param> <param name="expression"><![CDATA[(\w{6,20})]]></param> <message>确认密码长度必须为6至20之间</message> </validator> <validator type="fieldexpression"> <param name="fieldName">buyer.repassword</param> <param name="expression"><![CDATA[(buyer.repassword==buyer.password)]]></param> <message>密码和确认密码必须一致</message> </validator> <validator type="requiredstring"> <param name="fieldName">buyer.email</param> <param name="trim">true</param> <message>必须输入邮箱地址</message> </validator> <validator type="regex"> <param name="fieldName">buyer.email</param> <param name="expression"><![CDATA[(^\+?[a-z0-9](([-+.]|[_]+)?[a-z0-9]+)*@([a-z0-9]+(\.|\-))+[a-z]{2,6}$)]]></param> <message>邮箱格式不对</message> </validator> <validator type="regex"> <param name="fieldName">buyer.idiograph</param> <param name="expression"><![CDATA[(\w{6,20})]]></param> <message>个性签名长度必须为6至20之间</message> </validator> <!--<validator type="requiredstring"> <param name="fieldName">buyer.blogtitle</param> <param name="trim">true</param> <message>必须输入博客标题</message> </validator> --> <validator type="regex"> <param name="fieldName">buyer.blogtitle</param> <param name="expression"><![CDATA[(\w{6,20})]]></param> <message>博客标题长度必须为6至20之间</message> </validator> <field name="buyer.regTime"> <field-validator type="required"> <message>必须输入注册时间</message> </field-validator> <field-validator type="date"> <param name="min">2011-05-25</param> <message>广告投放时间必须介于${min}之后!!!</message> </field-validator> </field>
2.说明:校验框架有两种校验方式:field和validator, 字段校验一般用field 非字段一般用validator(其实两者都可以)
A.field校验:先指定需要校验的属性,在指定校验方式.
B.validator校验:先指定校验方式,再指定需要校验的属性.两种方式是等价的.
C.验证错误将默认产生FieldError.
D.short-circuit="true":一个校验失败,是否是继续执行后续校验.
E.对于相同属性的FieldError,validate()方法中的验证和RegisterAction-validation.xml中的验证都会执行,并且FieldError都会显示。
执行顺序: RegisterAction-validation.xml => validate()
只对action中的某个方法进行校验
-1- 需要校验的Action名 + -方法名 + -validation.xml | 对应xml中<action>的属性的name值 如: RegisterAction-add-validation.xml --对应 /add.action --对RegisterAction中的add()方法进行校验 -2- 在不需要进行验证的方法加上annotation,即在方法前加上@SkipValidation。 -3- <action name=...> <interceptor-ref name="defaultStack"> <param name="validation.excludeMethods">*</param> <param name="validation.includeMethods">需要验证的方法名称,以逗号分隔</param> </interceptor-ref> </action>
校验顺序
如果既提供了RegisterAction-validation.xml,又提供了RegisterAction-add-validation.xml
Struts2会先校验RegisterAction-validation.xml,然后再去校验RegisterAction-add-validation.xml这两个都会被调用
建议:
当有多个逻辑方法时,就不要提供RegisterAction-validation.xml
只提供相应方法的xml文件,如:RegisterAction-execute-validation.xml
field校验: <field name="name"> <field-validator type="requiredstring" > <param name="trim">true</param> <message>name required</message> </field-validator> <field-validator type="stringlength"> <param name="trim">true</param> <param name="minLength">6</param> <param name="maxLength">10</param> <message>name length range : ${minLength} ~ ${maxLength}</message> </field-validator> </field> validator校验: <validator type="requiredstring"> <param name="fieldName">name</param> <param name="trim">true</param> <message>name required</message> </validator> <validator type="stringlength"> <param name="fieldName">name</param> <param name="trim">true</param> <param name="minLength">6</param> <param name="maxLength">10</param> <message>name length range : ${minLength} ~ ${maxLength}</message> </validator>
3.Struts2客户端校验
设置struts标签<s:form>中validate="true"。这样就会根据RegisterAction-validation.xml生成页面Javascript,在客户端执行校验
4.FieldError和ActionError的实现
a.真正存放field级别错误信息的对象是LinkedHashMap。
b.该LinkedHashMap的key是String类型的,value是ArrayList类型,所以同一个key可以对应多个错误消息。
c.对于Action级别的错误信息,实际上是放置在ArrayList中的
发表评论
-
下拉列表框的两种方式
2012-06-16 16:19 1443下拉列表框的标签是<select>,struts2 ... -
Struts2与JFreeChart整合
2012-05-28 11:15 1829JFreechart是JAVA平台上的一个开放的图表绘制类库。 ... -
Struts2 API中InputConfig内methodName和resultName的使用方法
2012-04-09 18:59 4041关于Struts2 API中InputConfig内metho ... -
struts2整合CKEditor实现上传
2011-11-02 22:52 3508之前折腾了下CKEditor和CKFinder实现上传功能,今 ... -
addActionError,addFieldError,addActionMessage用法
2011-09-18 21:25 1141一、addActionError("错误内容&quo ... -
struts2自带demo
2011-06-12 04:55 1794struts-2.1.6 下载下来解压后APPs目录下有 1 ... -
struts2的select标签
2011-05-27 12:57 807struts2的select标签中,常用的有以下几个属性: ... -
常用标签
2011-05-26 16:20 933struts2标签 一、 写jsp页面的时候,在struts ... -
使用Struts2 的result 传递参数
2011-04-20 19:19 1001当使用type=“redirectAction” 或type= ... -
Struts2.18标签--s:url详解
2011-01-24 00:38 1260<!--action就是struts2 act ... -
struts2.18基础
2011-01-23 01:20 10091* struts2基础 1.1 struts2的基础知识请参 ... -
struts2拦截器
2011-01-22 11:15 1417package com.huawei.util; /** ... -
struts2.18的配置文件
2011-01-20 00:08 979好久不存来写struts2的配置文件了,今天突然想着来复习一下 ... -
Struts2.18注解
2011-01-15 00:46 1332注解相当在项目中来说用来代替配置(struts.xml)文件的 ... -
404/500异常捕获
2011-01-02 17:27 1799就在周五快下班的时候, ... -
Struts2.18标签
2010-12-26 17:58 1141用了很久struts2这个框架了,每天都在忙忙碌碌也 ...
相关推荐
struts2校验框架使用心得 希望对初学者有所帮助
Struts2校验框架应用
struts2校验框架 struts2校验框架 struts2校验框架 struts2校验框架
struts2的验证框架的示例代码,快速学习和使用struts2验证框架
struts2 验证框架,彻底简化判断页面传递过来的参数,必学内容
适合初学者 struts2验证框架简单示例
struts2 验证框架实例 掩饰了整个验证的过程 并讲解了一些网上没有说过的可能会遇到的错误
Struts2 和Struts1同样也提供了校验框架,但在Struts2 已经不再把校验框架做为一个插件,而是已经内置到了Struts2中,而且配置起来更为简单方便,功能也更强大。
struts2验证框架的一些属性和框架验证的语法
struts2.0的数据校验框架struts2.0的数据校验框架struts2.0的数据校验框架struts2.0的数据校验框架
2、用户名只能使用数字或者字母,长度为6~20之间; 3、密码、确认密码必须是数字和字母,长度为6~20之间; 4、密码、确认密码必须相同; 5、收入必须在0.001~10000.000之间; 6、年龄必须是整数且必须在0~120...
Struts2的校验框架 Struts2的校验框架 Struts2的校验框架
struts7验证框架 struts7验证框架 我们学习时候用的 还是很全面 的
Struts2验证框架的配置及validation.xml常用的验证规则
个人struts2框架学习后的梳理和总结,内容丰富,从配置文件到action类、result、ognl、类型转换器、国际化、拦截器、表单验证等等内容,还推荐了很多博客链接,有了它自学Struts2框架毫无压力!
source 博文链接:https://callan.iteye.com/blog/185577
Struts2 验证框架 validation.xml 常用的验证规则