- 浏览: 234013 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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 1513下拉列表框的标签是<select>,struts2 ... -
Struts2与JFreeChart整合
2012-05-28 11:15 1947JFreechart是JAVA平台上的一个开放的图表绘制类库。 ... -
Struts2 API中InputConfig内methodName和resultName的使用方法
2012-04-09 18:59 4142关于Struts2 API中InputConfig内metho ... -
struts2整合CKEditor实现上传
2011-11-02 22:52 3584之前折腾了下CKEditor和CKFinder实现上传功能,今 ... -
addActionError,addFieldError,addActionMessage用法
2011-09-18 21:25 1184一、addActionError("错误内容&quo ... -
struts2自带demo
2011-06-12 04:55 1826struts-2.1.6 下载下来解压后APPs目录下有 1 ... -
struts2的select标签
2011-05-27 12:57 840struts2的select标签中,常用的有以下几个属性: ... -
常用标签
2011-05-26 16:20 973struts2标签 一、 写jsp页面的时候,在struts ... -
使用Struts2 的result 传递参数
2011-04-20 19:19 1051当使用type=“redirectAction” 或type= ... -
Struts2.18标签--s:url详解
2011-01-24 00:38 1301<!--action就是struts2 act ... -
struts2.18基础
2011-01-23 01:20 10541* struts2基础 1.1 struts2的基础知识请参 ... -
struts2拦截器
2011-01-22 11:15 1441package com.huawei.util; /** ... -
struts2.18的配置文件
2011-01-20 00:08 1023好久不存来写struts2的配置文件了,今天突然想着来复习一下 ... -
Struts2.18注解
2011-01-15 00:46 1380注解相当在项目中来说用来代替配置(struts.xml)文件的 ... -
404/500异常捕获
2011-01-02 17:27 1827就在周五快下班的时候, ... -
Struts2.18标签
2010-12-26 17:58 1169用了很久struts2这个框架了,每天都在忙忙碌碌也 ...
相关推荐
### Struts2校验框架使用心得 #### 一、Struts2校验框架概述 Struts2是一款基于Java的企业级Web应用开发框架,它能够帮助开发者构建出结构清晰、易于维护的应用程序。其中,Struts2提供的校验框架是其核心特性之一...
Struts2作为一款流行的Java Web开发框架,提供了一套强大的校验框架,使得开发者能够方便地对用户输入数据进行验证,确保数据的准确性和安全性。本文将深入探讨Struts2校验框架的应用,包括其核心概念、配置方式、...
Struts2 验证框架详解 Struts2 验证框架是基于 Java 语言的 Web 应用程序框架,提供了一个强大的验证机制,以确保用户输入的数据满足业务逻辑的要求。在 Struts2 中,验证机制是通过 validator 来实现的,该机制...
在Struts2中,验证框架是其核心特性之一,它允许开发者对用户输入的数据进行校验,确保数据的完整性和安全性。这个“struts2验证框架示例”提供了深入理解并实际操作Struts2验证功能的机会。 首先,让我们了解一下...
本实例将带你深入理解Struts2验证框架的使用,以及在实际操作中可能遇到的问题和解决方案。 首先,Struts2的验证框架主要基于两个组件:`Validation`和`Validator`。`Validation`是Action类的注解,而`Validator`则...
在Struts2中,验证框架是处理用户输入验证的关键部分,它确保了从客户端接收到的数据的质量和准确性。本示例将深入探讨Struts2验证框架的基本用法,特别适合初学者理解和掌握。 ### 一、Struts2验证框架概述 ...
为了使Struts2框架能够识别到这些校验规则,需要在对应的Action类中指定使用这些校验规则。通常情况下,Struts2会根据Action类名来查找相应的`validation.xml`文件。 例如,对于一个名为`UserAction`的Action类,其...
综上所述,Struts2的输入校验机制不仅支持基本的手动校验,还提供了高度可配置和扩展的验证框架,使得开发者能够根据应用的具体需求,灵活地实现各种校验逻辑,从而提升应用程序的质量和用户体验。
Struts2的校验框架基于Apache Commons Validator,提供了多种预定义的验证器类型以及自定义验证器的功能。这些验证器可以在配置文件中或代码中定义,用于检查表单字段的有效性。 #### 三、示例分析 ##### 1. 配置...
8. **整合其他验证框架**:除了内置的验证功能,Struts2还可以与Hibernate Validator、JSR 303/JSR 349等Java Bean Validation标准进行集成,以利用更丰富的验证约束。 总之,Struts2的校验器是其强大功能的一部分...
Struts2提供了内置的验证框架,允许开发者自定义校验规则,以满足特定业务需求。下面将详细介绍Struts2自定义校验框架的相关知识点。 1. **Struts2验证框架概述** Struts2的验证框架主要负责处理用户提交的数据,...
Struts2作为一款流行的...通过以上对Struts2输入校验的深入总结,我们可以看到Struts2为开发者提供了灵活多样的校验方式,能够满足不同场景下的需求。了解并熟练掌握这些校验机制,有助于提升应用程序的质量和安全性。
下面将详细介绍Struts1验证框架的使用。 首先,我们来看一下如何设置Struts1的验证框架。在`struts-config.xml`配置文件中,你需要定义一个`form-bean`,这代表一个表单 Bean,例如`userValidateForm`,并指定其...
2、用户名只能使用数字或者字母,长度为6~20之间; 3、密码、确认密码必须是数字和字母,长度为6~20之间; 4、密码、确认密码必须相同; 5、收入必须在0.001~10000.000之间; 6、年龄必须是整数且必须在0~120...
本文将深入探讨Struts2验证框架的使用和扩展。 1. **Struts2验证框架基础** - **Action与Validator**: 在Struts2中,Action类是业务逻辑的载体,Validator则用于验证Action中的字段。通过在Action类中定义需要验证...
在本压缩包中,你可能会找到关于Struts2框架配置和使用的一些关键文件,这将帮助你在未来回顾或重新学习Struts2时快速上手。 首先,让我们深入了解一下Struts2的核心概念: 1. **Action类**:在Struts2中,业务...