- 浏览: 252050 次
- 性别:
- 来自: 上海
最新评论
-
lazyox_2008:
多谢楼主配对那一段,解决了我的大问题啊
android蓝牙主动发起配对实例 -
yandol:
这个反射的createBond用法很有意思 这个代码能像非an ...
android蓝牙主动发起配对实例 -
hzxlb910:
例子还是短小看着一目了然。不错
初识AOP -
lteb2002:
在WEB中,是使用WebApplicationContext的 ...
[转]Spring中WebApplicationContext的研究 -
Mark_dev:
请问一下楼主,这个UUID是不是和设备有关啊,我使用你的 co ...
android蓝牙主动发起配对实例
使用动态FormBean与struts验证框架
第一步,安装插件,在struts-config.xml中配置
validator-rules.xml是struts自带的,validation.xml须要自已新建
第二步,将validator-rules.xml中以下代码
拷贝到ApplicationResources.properties中,为了支持国际化ApplicationResources.properties同目录下新建ApplicationResources_zh_CN.properties需注意的是中文内容需通过native2ascii.exe进行转换。
命令使用格式:native2ascii 原文件 目标文件
我自已的常用做法是在JDK的ben目录下建一个.bat文件
内容:
cd %java_home%/bin/
native2ascii ApplicationResources_chinese.properties ApplicationResources_zh_CN.properties
如:ApplicationResources_chinese.properties中的文本:
errors.invalid={0} 无效.
errors.required={0} 不能为空.
转换后ApplicationResources_zh_CN.properties中的文本:
errors.required={0} \u4e0d\u80fd\u4e3a\u7a7a.
errors.invalid={0} \u65e0\u6548.
第三步,新建formBean与action
第四步,在validator.xml中定义验证规则
struts自带一些验证规则可供使用:
Byte、CreditCard、Date、Double、Email、Float、Integer、Long、Mask、MinLength、MaxLength、Range、Required、Short
通过field元素的depends属性指定依赖
当然struts也提供了自定义验证类的使用:
如验证密码一致性,编写以下类(引自struts中的例子)
validator.xml文件示例
第五步,结合action一起使用
到此为止,struts验证框架的使用基本完成。
第一步,安装插件,在struts-config.xml中配置
<message-resources parameter="ApplicationResources" /> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEBINF/validation.xml" /> </plug-in>
validator-rules.xml是struts自带的,validation.xml须要自已新建
第二步,将validator-rules.xml中以下代码
#------------------------ERROR----------------- errors.required={0} is required. errors.minlength={0} can not be less than {1} characters. errors.maxlength={0} can not be greater than {1} characters. errors.invalid={0} is invalid. errors.byte={0} must be a byte. errors.short={0} must be a short. errors.integer={0} must be an integer. errors.long={0} must be a long. errors.float={0} must be a float. errors.double={0} must be a double. errors.date={0} is not a date. errors.range={0} is not in the range {1} through {2}. errors.creditcard={0} is an invalid credit card number. errors.email={0} is an invalid e-mail address.
拷贝到ApplicationResources.properties中,为了支持国际化ApplicationResources.properties同目录下新建ApplicationResources_zh_CN.properties需注意的是中文内容需通过native2ascii.exe进行转换。
命令使用格式:native2ascii 原文件 目标文件
我自已的常用做法是在JDK的ben目录下建一个.bat文件
内容:
cd %java_home%/bin/
native2ascii ApplicationResources_chinese.properties ApplicationResources_zh_CN.properties
如:ApplicationResources_chinese.properties中的文本:
errors.invalid={0} 无效.
errors.required={0} 不能为空.
转换后ApplicationResources_zh_CN.properties中的文本:
errors.required={0} \u4e0d\u80fd\u4e3a\u7a7a.
errors.invalid={0} \u65e0\u6548.
第三步,新建formBean与action
<!--使用动态的验证表单--> <form-bean name="regForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="username" type="java.lang.String" /> <form-property name="password" type="java.lang.String" /> <form-property name="password2" type="java.lang.String" /> </form-bean> ...... <!--需注意得是validate属性必须为true--> <action attribute="regForm" name="regForm" parameter="method" path="/userReg" scope="request" input="/view/user/regedit.jsp" type="org.springframework.web.struts.DelegatingActionProxy" validate="true"> <forward name="regFail" path="/view/user/regedit.jsp" redirect="false" /> <forward name="regSuccess" path="/view/user/login.jsp" redirect="false" /> </action>
第四步,在validator.xml中定义验证规则
struts自带一些验证规则可供使用:
Byte、CreditCard、Date、Double、Email、Float、Integer、Long、Mask、MinLength、MaxLength、Range、Required、Short
通过field元素的depends属性指定依赖
当然struts也提供了自定义验证类的使用:
如验证密码一致性,编写以下类(引自struts中的例子)
package com.note.validator; import javax.servlet.http.HttpServletRequest; import org.apache.commons.validator.Field; import org.apache.commons.validator.GenericValidator; import org.apache.commons.validator.ValidatorAction; import org.apache.commons.validator.ValidatorUtil; import org.apache.struts.action.ActionErrors; import org.apache.struts.validator.Resources; public class CustomValidator { public CustomValidator() { super(); } /** * 功能:验证密码一致性(函数名必须以validate开头) * @param bean * @param va * @param field * @param errors * @param request * @return */ public static boolean validateTwoFields(Object bean, ValidatorAction va, Field field, ActionErrors errors, HttpServletRequest request) { String value = ValidatorUtil .getValueAsString(bean, field.getProperty()); String sProperty2 = field.getVarValue("secondProperty"); String value2 = ValidatorUtil.getValueAsString(bean, sProperty2); if (!GenericValidator.isBlankOrNull(value)) { try { if (!value.equals(value2)) { errors.add(field.getKey(), Resources.getActionError( request, va, field)); return false; } } catch (Exception e) { errors.add(field.getKey(), Resources.getActionError(request, va, field)); return false; } } return true; } }
validator.xml文件示例
<form-validation> <global> <!-- 自定义验证器 --> <validator name="twoFields" classname="com.note.validator.CustomValidator" method="validateTwoFields" methodParams="java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionErrors, javax.servlet.http.HttpServletRequest" msg="errors.twofields" /> <!-- 自定义验证器 --> <!-- 全局常量 --> <constant> <constant-name>string6_20</constant-name> <!--正则表达式--> <constant-value>^\w{6,20}$</constant-value> </constant> <!-- 全局常量 --> </global> <formset> <!-- 注册表单验证 --> <form name="regForm"> <field property="username" depends="required,mask"> <!--resource为true时将去ApplicationResources中查找对应key的值--> <arg0 key="lable.username" resource="true" /> <var> <var-name>mask</var-name> <var-value>${string6_20}</var-value> </var> </field> <field property="password" depends="required,mask,twoFields"> <arg0 key="lable.password" resource="true" /> <var> <var-name>mask</var-name> <var-value>${string6_20}</var-value> </var> <var> <var-name>secondProperty</var-name> <var-value>password2</var-value> </var> </field> </form> </formset> </form-validation>
第五步,结合action一起使用
/** * 功能:新用户注册 * * @param mapping * @param form * @param request * @param response * @return */ public ActionForward regedit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { DynaActionForm regForm = (DynaActionForm) form; String username = (String) regForm.get("username"); String password = (String) regForm.get("password"); Users user = this.ius.getUserByName(username); ActionErrors errors = new ActionErrors(); if (user == null) { user = new Users(); user.setUsername(username); user.setPassword(password); user.setLevel(0); user.setAddtime(new java.util.Date()); user.setLastime(new java.util.Date()); this.ius.addUser(user); } else { errors.add("username", new ActionError("errors.username.exist")); this.saveErrors(request, errors); return mapping.findForward("regFail"); } return mapping.findForward("regSuccess"); }
到此为止,struts验证框架的使用基本完成。
发表评论
-
android数据库操作(二)
2011-11-12 00:45 1455package cn.madfinger.android.co ... -
android数据库操作(一)
2011-10-31 13:18 1745为了以后的项目使用Android数据库更方便,自已写了一个小的 ... -
android蓝牙主动发起配对实例
2011-09-24 08:39 25435package cn.madfinger.core; i ... -
最给力的办公平台
2011-02-24 01:02 1554SUCANG协同采用AJAX、J2EE、MV ... -
DWR应用总结
2006-11-11 10:47 10000百事通信息网 配置调试: DWR的配置说明,网上已经是N多 ... -
[求教]关于DWR+Spring延迟加载的问题
2006-11-09 12:10 7082百事通信息网 今天用DWR+Spring做整合时,发现不能通 ... -
[转]Hibernate应用中如何处理批量更新和批量删除?
2006-11-02 10:36 10169百事通信息网 在Hibernate应用中如何处理批量更新和 ... -
初识AOP
2006-11-02 00:07 4334百事通信息网 学习Spring AOP之前,先来了 ... -
AOP的应用领域
2006-11-01 11:46 2518百事通信息网 AOP的应用领域: Authentica ... -
hibernate多表查询
2006-10-30 19:01 27132百事通信息网 我的demo小程序随着我学习的过程、 ... -
spring+hibernate之applicationContext.xml配置
2006-10-27 20:31 39656百事通信息网 最近一段时间潜心自学struts,spring ... -
Spring用回调HibernateCallBack方法
2006-10-27 20:28 7638百事通信息网 Spring用回调HibernateCall ... -
[转]Spring中WebApplicationContext的研究
2006-10-27 20:27 5886百事通信息网 作者:laoer 引自:http://b ... -
struts+spring整合测试
2006-10-27 20:24 6775百事通信息网 struts+spr ... -
将action得到的值,通过request显示到页面中
2006-10-27 20:13 2471百事通信息网 今天又遇到一个问题,将action ... -
WEB分页技术
2006-10-27 19:49 3903百事通信息网 web应用开发中,分页是一项很重要的技术,分 ... -
DWR+SPRING整合
2006-10-27 19:41 3492百事通信息网 Ajax,它 ... -
[转]Log4J 最佳实践之全能配置文件
2006-10-26 16:39 1507LOG4J的配置之简单使它遍及于越来越多的应用中了:Log4J ... -
[转]Log4J 最佳实践之全能配置文件
2006-10-26 16:38 1476LOG4J的配置之简单使它遍及于越来越多的应用中了:Log4J ... -
[转]关于hibernate中的锁机制
2006-10-26 14:57 1602(转载)关于hibernate中的 ...
相关推荐
struts2.0的数据校验框架struts2.0的数据校验框架struts2.0的数据校验框架struts2.0的数据校验框架
struts2校验框架使用心得 希望对初学者有所帮助
Struts2校验框架应用
struts验证框架-validation的验证框架
struts2校验框架 struts2校验框架 struts2校验框架 struts2校验框架
struts2的验证框架的示例代码,快速学习和使用struts2验证框架
java做的struts验证框架例子,可以自己测试
struts验证框架实例,validate框架
Struts验证框架配置详解,包括两个需要用到的jar包以及详细配置步骤和实例
2、用户名只能使用数字或者字母,长度为6~20之间; 3、密码、确认密码必须是数字和字母,长度为6~20之间; 4、密码、确认密码必须相同; 5、收入必须在0.001~10000.000之间; 6、年龄必须是整数且必须在0~120...
struts框架及校验框架详解struts框架及校验框架详解
只使用Struts2框架和struts标签做的一个简单用户登录系统,没有连接数据库,知识把用户输入信息传到后台校验,判断下,返回信息。开发工具myeclipse,tomcat
struts2 验证框架,彻底简化判断页面传递过来的参数,必学内容
struts7验证框架 struts7验证框架 我们学习时候用的 还是很全面 的
struts2 验证框架实例 掩饰了整个验证的过程 并讲解了一些网上没有说过的可能会遇到的错误
struts 验证框架 demo 请不要下载哈...
这个绝对值得信赖 不会验证框架的赶紧来参与呵呵
Struts2的校验框架 Struts2的校验框架 Struts2的校验框架
struts验证框架的实例 平时练习不错
适合初学者 struts2验证框架简单示例