- 浏览: 193861 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
xueruipp:
应该还能用吧
坦克大战用到的图片素材 -
泽在1993:
...
坦克大战用到的图片素材 -
AzraelWarrior:
...
坦克大战用到的图片素材 -
edison87915:
...
Java OCR 图像智能字符识别技术,可识别中文 -
innger:
为了避免如此我们应该用如下格式:
什么格式啊?
能不能在页 ...
Spring mvc3自己手动写国际化
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三者必须保持一致。)
发表评论
-
Java创建WebService服务及客户端实现
2014-02-26 10:48 6111WebService是一种服务的 ... -
新浪博客那样用户自己提交二级域名并自动解析是怎么实现的?
2013-11-27 09:24 776方法一 通过泛域名解析,将某个顶级域名下的所有的子域名都指向 ... -
【转】Java:Session详解
2013-01-18 14:06 929【转】Java:Session详解 书中讲: 以下情况,Se ... -
Eclipse 堆栈和内存大小设置
2012-11-09 00:26 9931, 设置Eclipse内存使用情况 修改ecl ... -
Target runtime Apache Tomcat 6.0 is not defined
2012-11-07 09:52 969Eclipse导入工程后工程上显示一个小红叉,但工程里没有文 ... -
怎样在Eclipse中使用debug调试程序?
2012-10-10 10:20 0最基本的操作是: 1, 首先在一个java文件中设断点, ... -
Javascript跳转页面和打开新窗口等方法
2012-09-28 21:14 11421.在原来的窗体中 ... -
String与InputStream互转
2012-09-15 02:14 7135//String转inputStream 1. String ... -
Tomcat下面配置二级域名
2012-05-29 11:33 2429(1)开通二级域名支持,即house.map512.cn,pl ... -
Java OCR 图像智能字符识别技术,可识别中文
2012-05-22 15:34 2291几天一直在研究 OCR 技术,据我了解的情况,国内最专 ... -
上传组件
2012-05-02 23:19 893http://seyaa.iteye.com/blog/106 ... -
java实现简单的单点登录
2012-04-09 14:13 896http://www.blogjava.net/xcp/arc ... -
web service 实例
2012-02-20 11:18 838http://wenku.baidu.com/view/fac ... -
URI和URL的不同
2012-01-17 19:40 11681.什么是URI Web上可用的每种资源 - ... -
常用解决疑难杂症的网站
2012-01-09 09:28 920http://stackoverflow.com/questi ... -
java内部类详解
2012-01-05 13:56 1165内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一 ... -
iBATIS的多对多映射配置浅析
2011-12-28 16:58 886http://developer.51cto.com/art/ ... -
Spring security3 中文官方文档
2011-12-23 13:57 980Spring security 3.0 官方翻译文档 -
Spring security 3.0 配置实例
2011-11-30 23:29 1000http://junjun16818.iteye.com/bl ... -
Java treemap 排序
2011-11-25 11:42 1871TreeMap 和 HashMap 用法大 ...
相关推荐
春天命令Cucumber 这个 gem 为实现了cucumber命令。 用法 添加到您的 Gemfile: gem "spring-commands-cucumber
spring-framework-4.3.6.RELEASE - 解包大小为 44.9 MB ## Spring Framework The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications ...
Laravel开发-commands 这是为帮助开发工作中的每个人而创建的Laravel Artisan命令集合。
Linux Commands
Mastering Spring Cloud Packt Upsell Why subscribe? PacktPub.com Contributors About the author About the reviewer Packt is searching for authors like you Preface Who this book is for What this book ...
ZPL II Commands for RFID
FreeBSD Commands It is useful!
Unix shell commands,Unix shell commands
此标准规定了SCSI Block Commands - 3(SBC-3)命令集的功能要求.SBC-3允许SCSI块逻辑单元(如刚性磁盘)连接到计算机并提供其使用的定义。 该标准与SCSI Block Commands(SBC-2)命令集INCITS 405-2005保持高度兼容...
Oracle DBA commands
focus on describing most commonly used Docker commands, which are used for running and monitoring microservices in containerized environment. You will also learn how to build and run containers using ...
Trusted Platform Module Library Part 3: Commands This TPM 2.0 Part 3 of the Trusted Platform Module Library specification contains the definitions of the TPM commands. These commands make use of the ...
使用想服务器上传jsp执行windows或者linux命令,来获取服务器的资源情况。 Commands with JSP.sjp
db2 commands to use when operate db2 database.zip
Kingkong AT Commands Spec V1.5
commom commands of latex
SCSI Block Commands – 3
ansys commands reference,学习ansys必备,可以熟练运用
SCSI Primary Commands - 4 (SPC-4) spc4r25 This is an internal working document of T10, a Technical Committee of Accredited Standards Committee INCITS (InterNational Committee for Information ...
Windows Commands ,Command-Line Syntax Key ,Commands by Server Role ,Print Command Reference ,Services for Network File System Command Reference ,Remote Desktop Services (Terminal Services) Command ...