- 浏览: 4381467 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (163)
- 职场 && 心情 (22)
- Java/Basic (17)
- Java/Compression (7)
- Java/Security (20)
- Java/Maven (3)
- Java/Cache (11)
- Eclipse (4)
- Spring (19)
- ORM/Hibernate (2)
- ORM/iBatis (3)
- DB/NoSQL (11)
- DB/MySQL (7)
- DB/MS SQL Server (4)
- OS/Linux (11)
- OS/Mac (7)
- C/C++ (4)
- Server Architecture/Basic (13)
- Server Architecture/Distributed (17)
- Moblie/Andriod (2)
- WebService (3)
- Objective-C (1)
- Html (1)
- 设计模式 (1)
- Scala (0)
- Kafka (1)
最新评论
-
w47_csdn:
证书安装:在"浏览"选项中选择" ...
Java加密技术(九)——初探SSL -
w47_csdn:
spiritfrog 写道你好,我按照你的步骤,tomcat中 ...
Java加密技术(九)——初探SSL -
liuyachao111:
11楼说的对 用@ControllerAdvicepublic ...
Spring 注解学习手札(八)补遗——@ExceptionHandler -
irayslu:
作者你好, 我把你的源码放在jdk6, jdk7 中运行正常, ...
Java加密技术(五)——非对称加密算法的由来DH -
夏季浅忆-卖小子:
为什么不能解压rar格式的压缩包呢
Java压缩技术(三) ZIP解压缩——Java原生实现
关于Spring中Commons Validator的使用说明
spring的validate验证需要两个bean(ValidatorFactory、BeanValidator)及两xml文件(validator-rules.xml、validation.xml)的支持,ValidatorFactory用于制造BeanValidator,后者则是在程序中执行校验的控制bean。Validatorrules.xml中定义了各种验证的规则,如字段不为空,字段输入值必须为整数等等。Validation.xml中则定义了那些bean及bean中的哪些属性字段需要验证,使用哪些验证规则。validate 分为两级验证,客户端验证(javascript)和服务器端验证。以下是使用validate的步骤:
1. 在配置文件中声明ValidatorFactory 和 BeanValidator:
<bean id="validatorFactory" class="org.springmodules.commons.validator.DefaultValidatorFactory"> -----①
<property name="validationConfigLocations"> -----②
<list>
<value>/WEB-INF/validator-rules.xml</value>
<value>/WEB-INF/validation.xml</value>
</list>
</property>
</bean>
<bean id="beanValidator"
class="org.springmodules.commons.validator.DefaultBeanValidator"> -------③
<property name="validatorFactory">
<ref bean="validatorFactory" /> --------④
</property>
</bean>
① 声明validatoFactory 这里我们使用spring 的DefaultValidatorFactory
② 定义其validationConfigLocations 属性,将validator-rules.xml和validation.xml传入
③ 声明beanValidator 这里我们使用spring的DefaultBeanValidator
④ 在其属性中指明要使用的validatorFactory 。这里我们使用刚刚定义的validatorFactory
2. 在需要进行验证的controller(即要使用form表单或者command的controller)中声明validate。
<bean id="xxxxController" ……>
<property name="commandName" value="userCommand"/> -----①
<property name="commandClass" value="com.resoft.User"/> -----②
<property name="validator" ref="beanValidator"/> -------③
……
</bean>
① commandName 用于指明需要验证的 command的名字,这个名字必须和 validation.xml中<form name=" xxxxx "> 所写的名字保持一致。
② commandClass用于指定这个command的类型。其必须与你jsp提交的form最后形成的command类型相一致。
③ 声明该controller使用validator,这里将我们刚刚定义的beanValidator传入进去。
3. 在validation.xml文件中,定义你要校验的formbean(或者说是command) ,定义这个bean中有哪几个field需要验证,使用何种规则验证。(注意:这里定义的form name 必须和前面controller中定义的commandName保持一致)以下是几种常用的验证示例:
<form-validation>
<formset>
<form name=" userCommand "> -----①
<field property="userId" depends="required"> -----②
<arg0 key="用户代码" /> -------③
</field>
① 这里是定义要验证的bean的名字,要求去上面定义的 commandName 相同
② 这里定义要验证的bean属性为 userId ,使用规则为 required(不为空)
③ 这里定义的是显示信息,arg0 表示位置 0 的显示信息,显示key 所标明的信息 (如果你还有多个信息就用 arg1,arg2 等)出错信息将会显示为: 用户代码 不能为空
<field property="age" depends="required,integer,mask"> -----①
<arg0 key="年龄" />
<msg name="mask" key="errors.negative"/> -----②
<var>
<var-name>mask</var-name>
<var-value>^[1-9]</var-value> -------③
</var>
</field>
① mask 标记验证,使用正则表达式来约束表单输入值。(如:只能输入数字,字母或指定的字符)
② msg 标签用来定义 验证规则和出错信息的关联,这里表示当出现 mask 校验失败时,显示 errors.negative指明的信息。
③ 整个<var>标签就是用来定义具体的规则的,如<var-name>mask</var-name>指明是用于mask的规则,<var-value>^[1-9]</var-value> 表示只允许1-9这几个数字开头。
所以上面验证信息是年龄字段不可以为空,必须为整数,而且必须为1-9开头 也就杜绝了负数和零的情况。
<field property="birthday" depends="required,date"> -----①
<arg0 key="生日" />
<var>
<var-name>datePatternStrict</var-name> -----②
<var-value>yyyy-MM-dd</var-value> -----③
</var>
</field>
</formset>
① 使用“date”加入对日期的格式的校验
② 开始定义日期格式,var-name 必须写为 datePatternStrict
③ 定义你希望的日期格式如:yyyy-mm-dd yy/mm/dd 等等都可以。
<field property="startDate" depends="required,date">
<arg0 key="开始日期" />
<var>
<var-name>datePatternStrict</var-name>
<var-value>yyyy-MM-dd</var-value>
</var>
</field>
<field property="endDate" depends="required,date,compareTwoField"> -----①
<arg0 key="结束日期" />
<arg1 key="开始日期" /> -----②
<var>
<var-name>datePatternStrict</var-name>
<var-value>yyyy-MM-dd</var-value>
</var>
<var>
<var-name>secondField</var-name> -------③
<var-value>startDate</var-value>
</var>
</field>
① 这里演示的是两个日期的验证,要达到开始日期不能晚于结束日期,加入compareTwoField 验证规则
② 定义第2个显示参数agr1 “开始日期”
③ 加入一个var 其var-name 为secondField(这个是在程序中写死的,必须写为secondField)
④ var-value 定义为开始日期的属性名,如在本例中为 startDate
注:compareTwoField 是我们自己编写的一个校验规则,用于比较两个字段值大小。
4. 在jsp页面中定义错误信息显示语句:
<spring:bind path="tableCrashDO.*"> -----①
<c:if test="${not empty status.errorMessages}">
<div class="error">
<c:forEach var="error" items="${status.errorMessages}">
<c:out value="${error}" escapeXml="false"/><br />
</c:forEach>
</div>
</c:if>
</spring:bind>
① 这里的path 必须要与传入该 jsp 的bean的名字一样。如传入该jsp的数据bean 叫tableCrashDO,path就应该写为tableCrashDO.*。
5. 使客户端产生javascript代码:
<v:javascript formName="tableCrashDO" -----①
staticJavascript="false" xhtml="true" cdata="false"/>
<script type="text/javascript" src="<c:url value="scripts/validator.jsp"/>"></script>
① v:javascript 标签是spring的标签,定义在spring-commons-validator.tld 。其中formName必须与validation.xml中form的name保持一致。
如此以来,基本上可以算完成了validate的验证配置。
(特别注意: controller 中的commandName; validation.xml中的form name; jsp中v:javascript标签的formName三者必须保持一致。)
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=788907
spring的validate验证需要两个bean(ValidatorFactory、BeanValidator)及两xml文件(validator-rules.xml、validation.xml)的支持,ValidatorFactory用于制造BeanValidator,后者则是在程序中执行校验的控制bean。Validatorrules.xml中定义了各种验证的规则,如字段不为空,字段输入值必须为整数等等。Validation.xml中则定义了那些bean及bean中的哪些属性字段需要验证,使用哪些验证规则。validate 分为两级验证,客户端验证(javascript)和服务器端验证。以下是使用validate的步骤:
1. 在配置文件中声明ValidatorFactory 和 BeanValidator:
<bean id="validatorFactory" class="org.springmodules.commons.validator.DefaultValidatorFactory"> -----①
<property name="validationConfigLocations"> -----②
<list>
<value>/WEB-INF/validator-rules.xml</value>
<value>/WEB-INF/validation.xml</value>
</list>
</property>
</bean>
<bean id="beanValidator"
class="org.springmodules.commons.validator.DefaultBeanValidator"> -------③
<property name="validatorFactory">
<ref bean="validatorFactory" /> --------④
</property>
</bean>
① 声明validatoFactory 这里我们使用spring 的DefaultValidatorFactory
② 定义其validationConfigLocations 属性,将validator-rules.xml和validation.xml传入
③ 声明beanValidator 这里我们使用spring的DefaultBeanValidator
④ 在其属性中指明要使用的validatorFactory 。这里我们使用刚刚定义的validatorFactory
2. 在需要进行验证的controller(即要使用form表单或者command的controller)中声明validate。
<bean id="xxxxController" ……>
<property name="commandName" value="userCommand"/> -----①
<property name="commandClass" value="com.resoft.User"/> -----②
<property name="validator" ref="beanValidator"/> -------③
……
</bean>
① commandName 用于指明需要验证的 command的名字,这个名字必须和 validation.xml中<form name=" xxxxx "> 所写的名字保持一致。
② commandClass用于指定这个command的类型。其必须与你jsp提交的form最后形成的command类型相一致。
③ 声明该controller使用validator,这里将我们刚刚定义的beanValidator传入进去。
3. 在validation.xml文件中,定义你要校验的formbean(或者说是command) ,定义这个bean中有哪几个field需要验证,使用何种规则验证。(注意:这里定义的form name 必须和前面controller中定义的commandName保持一致)以下是几种常用的验证示例:
<form-validation>
<formset>
<form name=" userCommand "> -----①
<field property="userId" depends="required"> -----②
<arg0 key="用户代码" /> -------③
</field>
① 这里是定义要验证的bean的名字,要求去上面定义的 commandName 相同
② 这里定义要验证的bean属性为 userId ,使用规则为 required(不为空)
③ 这里定义的是显示信息,arg0 表示位置 0 的显示信息,显示key 所标明的信息 (如果你还有多个信息就用 arg1,arg2 等)出错信息将会显示为: 用户代码 不能为空
<field property="age" depends="required,integer,mask"> -----①
<arg0 key="年龄" />
<msg name="mask" key="errors.negative"/> -----②
<var>
<var-name>mask</var-name>
<var-value>^[1-9]</var-value> -------③
</var>
</field>
① mask 标记验证,使用正则表达式来约束表单输入值。(如:只能输入数字,字母或指定的字符)
② msg 标签用来定义 验证规则和出错信息的关联,这里表示当出现 mask 校验失败时,显示 errors.negative指明的信息。
③ 整个<var>标签就是用来定义具体的规则的,如<var-name>mask</var-name>指明是用于mask的规则,<var-value>^[1-9]</var-value> 表示只允许1-9这几个数字开头。
所以上面验证信息是年龄字段不可以为空,必须为整数,而且必须为1-9开头 也就杜绝了负数和零的情况。
<field property="birthday" depends="required,date"> -----①
<arg0 key="生日" />
<var>
<var-name>datePatternStrict</var-name> -----②
<var-value>yyyy-MM-dd</var-value> -----③
</var>
</field>
</formset>
① 使用“date”加入对日期的格式的校验
② 开始定义日期格式,var-name 必须写为 datePatternStrict
③ 定义你希望的日期格式如:yyyy-mm-dd yy/mm/dd 等等都可以。
<field property="startDate" depends="required,date">
<arg0 key="开始日期" />
<var>
<var-name>datePatternStrict</var-name>
<var-value>yyyy-MM-dd</var-value>
</var>
</field>
<field property="endDate" depends="required,date,compareTwoField"> -----①
<arg0 key="结束日期" />
<arg1 key="开始日期" /> -----②
<var>
<var-name>datePatternStrict</var-name>
<var-value>yyyy-MM-dd</var-value>
</var>
<var>
<var-name>secondField</var-name> -------③
<var-value>startDate</var-value>
</var>
</field>
① 这里演示的是两个日期的验证,要达到开始日期不能晚于结束日期,加入compareTwoField 验证规则
② 定义第2个显示参数agr1 “开始日期”
③ 加入一个var 其var-name 为secondField(这个是在程序中写死的,必须写为secondField)
④ var-value 定义为开始日期的属性名,如在本例中为 startDate
注:compareTwoField 是我们自己编写的一个校验规则,用于比较两个字段值大小。
4. 在jsp页面中定义错误信息显示语句:
<spring:bind path="tableCrashDO.*"> -----①
<c:if test="${not empty status.errorMessages}">
<div class="error">
<c:forEach var="error" items="${status.errorMessages}">
<c:out value="${error}" escapeXml="false"/><br />
</c:forEach>
</div>
</c:if>
</spring:bind>
① 这里的path 必须要与传入该 jsp 的bean的名字一样。如传入该jsp的数据bean 叫tableCrashDO,path就应该写为tableCrashDO.*。
5. 使客户端产生javascript代码:
<v:javascript formName="tableCrashDO" -----①
staticJavascript="false" xhtml="true" cdata="false"/>
<script type="text/javascript" src="<c:url value="scripts/validator.jsp"/>"></script>
① v:javascript 标签是spring的标签,定义在spring-commons-validator.tld 。其中formName必须与validation.xml中form的name保持一致。
如此以来,基本上可以算完成了validate的验证配置。
(特别注意: controller 中的commandName; validation.xml中的form name; jsp中v:javascript标签的formName三者必须保持一致。)
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=788907
发表评论
-
征服 Redis + Jedis + Spring (三)—— 列表操作
2013-03-06 16:16 83958一开始以为Spring下操 ... -
Memcached笔记——(四)应对高并发攻击
2012-09-13 09:48 28926近半个月过得很痛苦,主要是产品上线后,引来无数机器用户恶意 ... -
征服 Redis + Jedis + Spring (二)—— 哈希表操作(HMGET HMSET)
2012-08-29 18:29 82314不得不说,用哈希操作来存对象,有点自讨苦吃! 不过,既然 ... -
征服 Redis + Jedis + Spring (一)—— 配置&常规操作(GET SET DEL)
2012-08-29 16:30 157452有日子没写博客了,真的是忙得要疯掉。 完成项目基础架构搭建 ... -
Spring 注解学习手札(八)补遗——@ExceptionHandler
2012-08-17 18:35 84111Spring注解,改变了我的 ... -
Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable
2012-08-10 21:27 439644最近需要做些接口服务,服务协议定为JSON,为了整合在Spri ... -
征服 Kestrel + XMemcached + Spring TaskExecutor
2012-07-30 14:43 6205上一篇征服 Kestrel + XMemcached只是对Ke ... -
征服Spring AOP—— @AspectJ
2012-04-10 12:01 18654接N年前写的一篇Spring AOP相关的内容征服Spring ... -
Memcached笔记——(二)XMemcached&Spring集成
2012-04-01 09:55 42318今天研究Memcached的Java的Client,使用XMe ... -
Spring util
2011-02-24 12:02 01,<util:constant/> 取代了之前通 ... -
Spring HttpInvoke实现,以及效率提升!
2010-07-01 17:38 15018最近接手服务器总被人质疑效率问题,说到底是质疑Spring H ... -
Spring 注解学习手札(六) 测试
2010-02-05 16:28 53155既然系统基于注解自成一体,那么基于Spring的测试是否可以依 ... -
Spring 注解学习手札(五) 业务层事务处理
2010-02-04 16:11 25340控制器层、持久层都有 ... -
Spring 注解学习手札(四) 持久层浅析
2010-01-29 11:11 22575今天,我们玩玩数据库,搞搞持久层。不搞太复杂的东西,Sprin ... -
Spring 注解学习手札(三) 表单页面处理
2010-01-26 15:21 40478昨天小歇一天,看着两篇博客迅速飙升的点击率,十分欣慰。今天来研 ... -
Spring 注解学习手札(二) 控制层梳理
2010-01-24 15:53 36566昨天对Spring注解有了一 ... -
Spring 注解学习手札(一) 构建简单Web应用
2010-01-23 13:40 83385近来工作发生了一些变化,有必要学习一下Spring注解了! ... -
征服Spring AOP—— Schema
2008-09-03 17:41 6433自从开始使用Spring,就接触到AOP,但一直未能深入,沉淀 ... -
acegi 我该从哪里取到用户的信息
2006-09-21 17:32 5776项目需要 用acegi做为安全屏障,按acegi 1.0.1 ...
相关推荐
其中commons validator是一个可配置的验证框架,使用方式和工作原理都和struts用的ValidatorPlugIn一样。它可以通过配置生成js在客户端验证, 也可以配合具有验证功能的spring controller实现客户端验证. 本下载文件...
一款灵活易用的JavaScript验证构件
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. ...
commons-validator.jar jakarta-oro.jar jdom.jar jstl.jar junit.jar log4j-1.2.8.jar naming-factory.jar poi-3.0-alpha2-20060616.jar poi-contrib-3.0-alpha2-20060616.jar poi-scratchpad-3.0-alpha2-20060616....
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 7.2.3. AspectJ切入点表达式 7.2.4. ...
hibernate-validator-4.0.2.GA.jar httpclient-4.1.2.jar httpcore-4.1.2.jar jackson-core-asl-1.7.2.jar jackson-core-asl-1.9.9.jar jackson-jaxrs-1.7.2.jar jackson-jaxrs-1.9.9.jar jackson-mapper-asl-1.7.2....
以用户管理为例,结合spring struts hibernate dwr jstl做的实例,struts hibernate dwr 与Spring完全结合,实现用户列表、信息增、删、改、查...validator.jar jakarta-oro.jar commons-beanutils-1.7.0.jar
antlr-2.7.6.jar,antlr-2.7.7.jar,aopalliance-1.0.jar,asm-3.3.1.jar,cglib-2.2.jar,classes12.jar,commons-codec-1.7.jar,commons-collections-3.1.jar,commons-collections-3.2.1.jar,commons-lang-2.6.jar,...
spring版本有2.0,2.5的,hibernate版本较多些至3.2,首先选版本就选择最优的,struts2没的选只有2.1.6版的,所以先导入struts2支持,然后是spring选的是2.0,问题就出在struts2中spring的插件上了,没有从MyEclipse...
1.1.24-20120814.043343-7.jar freemarker-2.3.19.jar hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.2.1.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar hibernate-validator-5.1.0.Final....
工具类:Apache Commons、Jackson 2.2、fastjson 1.2.20 前端技术 JS框架:Jquery 表格插件:Bootstrap Table 表单验证插件:BootstrapValidator 日期选择插件:Datepicker for Bootstrap 弹层组件:Layer 数据图表...
ssm(spring+spring mvc+mybatis)高仿小米电子商城项目实例 开发环境:Eclipse ,JDK 1.8 ,Tomcat7 技术选型: 后端技术 核心框架:Spring Framework 4.3.5 视图框架:Spring MVC 4.3.5 任务调度:Spring + ...
hibernate-validator-5.2.4.Final.jar imgscalr-lib-4.2.jar jackson-annotations-2.2.3.jar jackson-core-2.2.3.jar jackson-databind-2.2.3.jar jackson-module-jaxb-annotations-2.2.3.jar javaGeom-0.11.1.jar ...
包括 :Spring 的20个 jar、Spring MVC 所需的 commons 相关 jar 以及 Hibernate-Validator 的 jar
4.信息校验包: commons-validator-1.3.0.jar 5.ajax使用时需要加载的包:dwr.jar 6.freemarker使用时加载的包:freemarker-2.3.8.jar 7.hibernate使用加载的包:hibernate3.jar 8.数据库mysql使用时加载的包:...
其中包含:shale-core.jar commons-beanutils.jar commons-chain.jar commons-codec.jar commons-collections.jar commons-digester.jar commons-el.jar commons-fileupload.jar commons-...
【B1】Spring+SpringMVC+Ehcache+Shiro+BootStrap企业级开发平台源码下载 内置功能 用户管理 角色管理 菜单管理 字典管理 部门管理 附件管理 参数管理 连接池监视 日志管理 技术选型 1、后端 核心框架...