1.Validator框架的使用
在struts中除了自己定义validate校验方法以外,还可以使用一个功能十分强大的框架帮我们实现校验步骤,那就是Validator框架
。Validator框架是一个完整的架构,struts只是引用它而已。但是使用起来还是非常便利的。
首先与struts一同导入的jar包中就有一个commons-validator的jar包。所以我们不需要再去另外找validator的资源包,只要引入
两个配置文件即可。在struts的struts-mailreader范例的WEB-INF夹内就含有这两个文件,分别是validator-rules.xml和
validation.xml。其中validator-rules.xml中的配置一般不需要改动。我们在validation.xml文件中按需求进行配置就可以了。在
此之前,需要告诉struts我们引入了validator框架。具体做法就是在struts-config.xml文件中插入pulg-in节点。默认范例:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
<set-property property="stopOnFirstError" value="false"/>
</plug-in>
value中的路径为两个validator配置文件的实际存放路径。
接下来把需要用validator校验的formbeen修改一下。让它不要继承ActionForm,而是继承ValidatorForm。同时它不能重载
validate方法。当然,你也可以不这么,而是在validate方法中自己调用Validator框架。对初学者来说是没有必要的。
之后就只要在validation.xml中进行设置了。
一个很简单的配置
<formset>
<form name="LogonForm">
<field property="name" depends="required">
<arg0 key="customer.name"/>
</field>
</form>
</formset>
<form>元素中的name属性设置的是要校验的FormBeen名称,需要和struts-config.xml中相应<from-been>元素定义的name属性的值
相同。
field元素定义的就是要校验的各个表单元素了。property为表单元素名,要注意的是,校验生成的错误信息保存的名字也是这个
property定义的名字。depends是依赖规则,具体规则在validator-rules.xml文件中。根据需要寻找即可。arg0指的是在国际化资
源文件中定义的语句要插入的参数。例如国际化资源文件中定义了一个required的默认错误提示:errors.required={0} is
required.那么agr0会先从国际化资源文件找customer.name对应的值,然后放入errors.required对应的{0}的位置。最后显示出的
就是name is required。如果资源文件中某条错误提示参数有多条,那么可以定义相应的arg1、arg2。。或者直接定义arg,再增加
position属性来具体定位。
再看一个例子
<field property="name" depends="required,maxlength">
<arg0 key="customer.name"/>
<arg1 name="maxlength" key="${var:maxlength}" resource="false"/>
<var><var-name>maxlength</var-name><var-value>30</var-value></var>
</field>
这里多了一个var元素。即可以定义函数。<arg1 name="maxlength" key="${var:maxlength}" resource="false" />的意思是key值为一个具体的值,不再从资源文件中提取。而这个值来自var定义的maxlength对应的值,即var-value元素中的30。同时name属性指定的是该参数是属于哪个规则的。此处为maxlength规则。
接下来看一个相对复杂的校验器
<field property="password2"
depends="required,validwhen">
<arg key="prompt.password2"/>
<var>
<var-name>test</var-name>
<var-value>(*this*==user.password)</var-value>
</var>
</field>
这里用到了validwhen校验规则。这个规则一定要定义一个<var>元素,并且元素名称为test,值为一个比较表达式。而且注意格式
,this两边要有*号。这个规则的意思就是看那个比较表达式的结果是否为真,不为真则添加错误信息到request中。
vaidator框架还有许多校验器可以方便使用,例如email,date,以及mask(正则表达式)。
2.ValidatorActionForm
如果两个Action关联的是同一个ActionForm,但它们的校验规则可能不一样,在ActionForm中该如何编写validate方法?例如,增
加用户和修改用户时可以使用同一个Action,但是修改用户时不需要校验密码。
这个时候Form继承的就不是ValidatorForm了,而是ValidatorActionForm。
<form name="">中也不再是form的名字了,而是action路径。即<form name="/RegUser">这样的形式。这样对应不同的action,可
以进行不同的校验。
3.用Validator框架产生JavaScript代码
我们之前实现的校验都是在服务器端完成的,但Validator框架提供了一个方法可以生成JavaScript代码,使表单在客服端就可以进
行基本验证,实现的方法也很简单。
要使用Validator的JavaScript校验功能,要在jsp页面中使用struts的<html:javascript formName="xxx">标签,其中的xxx是某个
校验域的名称,并在需要验证的表单的onsubmit属性中调用"return validateXxx()"方法。validateXxx方法可以通过
<html:javascript>的method属性来改变。
如果要为ValidatorActionForm对应的表单生成前台的javascript校验代码,可以使用类似如下的代码:
<html:javascript formName=“/logon” />
其中的formName与校验域的名字完全一样,生成的javascript方法则是按formBean的名称来的。
Validator框架与struts应用
分享到:
相关推荐
传智博客Validator框架与struts应用ppt
validator of struts, 验证框架,主要包括4种方法,具体可以参考博客!
struts应用中使用了validator验证框架,它为struts提供了灵活的验证规则,而无需编程
第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...
第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...
所发布的是《Struts应用开发完全手册》的全部源代码,以数字命名的文件代表书中的章节!
第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...
第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator 验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...
第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator 验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...
第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator 验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...
(1):对用户名的检验规则是用户名不能为空,... ... (3):年龄的校验规则是必须是整数,且在1到120之间。 (4):生日的校验规则是必须在1950-1-1到1990-1-1之间。 (5):所有提示信息均要用到国际化资源文件实现。 ...
基于Struts应用程序框架构造的应用程序,除了可以复用业已证明可用的解决方案外,同时也可以使得开发人员更加关注应用程序的特性。Struts是由Apache软件基金会支持的开源软件。 本书完整介绍了Struts框架结构,涵盖...
Validator验证框架高级应用,上面有姓名、密码、年龄、email等
传智播客的struts高级实战进阶 MVC模式的回顾 回顾Struts的请求处理时序图 使用超连接的技巧 封装Formbean数据时的问题 防止表单重复提交 ...Validator框架 Struts请求处理过程的源码分析与digester
第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...
Struts-JSP-Hibernate框架在Java Struts Framework上进行实践,还包括Struts Validator框架,Java Server Pages(JSP)和Hibernate以连接到SQL Oracle DMBS。 另外,通过创建银行Web应用程序和应用这些技术的Forum ...
08 Struts_08DynaValidatorForm : Struts框架的Validator验证框架 09 Struts_09Token : Structs的令牌机制,避免重复提交问题 10 Struts_10SmartUpload : structs的文件上传 11 Struts_11Internationalize : Structs...
1.5 你的第一个struts应用程序 8 第2章深入Struts结构 8 2.1人介绍应用框架 mvc和model2 8 2.2 Struts原理、开发及项目实施 8 2.3使用STRUST控制流 8 2.4讨论STRUTS的优缺点 9 2.5 Struts入门经验 9 2.6用strtus制作...
MVC模式的回顾 回顾Struts的请求处理时序图 使用超连接的技巧 封装Formbean数据时的问题 防止表单重复提交 使用复选框的技巧 使用下拉列表框的技巧 ...Validator框架 Struts请求处理过程的源码分析与digester
使用领先的Java框架构建Web应用 成果就是Struts in Action。它完全是一本“团队书籍”。David Winterfeldt, Struts Validator的创建者,非常乐意地撰写了Validator 一章。同样,Cedric Dumoulin,Tiles的创建者,也...