快速业务通道

Struts1.x系列教程(11):Validator验证框架高级应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

Struts1.x系列教程(11):Validator验证框架高级应用

时间:2011-01-10 BlogJava 银河使者

在《Struts1.x系列教程(10):Validator验证框架入门》一文中给出的例子中的name、age和email都是简单的属性,如果是嵌套的属性(也就是一个属性的数据类型是另外一个带有属性的类),可以使用圆点(.)符号来访问。如我们可以通过设置<field>元素的property属性值为“employee.salary”来验证employee属性中的salary属性。

如果要验证的索引属性,我们可以使用<field>元素的indexedListProperty属性来指定这个索引属性,如下面代码如示:

<field indexedListProperty="items" depends=……>……</field>

在使用上述配置代码后,Validator框架将会按着depends属性中的约束来验证items属性的每一个值。我们还可以将property和indexedListProperty配合使用,如下面代码所示:

<field indexedListProperty="items" property="employee.age" depends=……>……</field>

Validator框架将根据上述的配置代码来验证items属性中的每一项的employee.age属性。

二、使用常量和变量

1. 常量

在《Struts1.x系列教程(10):Validator验证框架入门》一文中的name属性使用了mask进行验证。这个mask实际上代表了一个正则表达式。但如果在validator.xml文件中有很多个地方需要用到这个正则表达式,那就它就会在很多地方重复。为此,我们可以使用常量来避免这种事情发生。  

常量分为全局常量和局部常量。

(1)全局常量

全局常量可以被用在validator.xml中定义的所有form中。我们可以使用<global>元素来配置全局常量。为了配置全局常量,将如下的内容放到第一个<formset>元素的前面。

<global>     <constant>       <constant-name>mask</constant-name>       <constant-value>^[a-zA-Z0-9]*contentlt;/constant-value>     </constant>   </global>   <formset>

(2)局部常量

局部常量需要放到<formset>元素的开始位置(根据DTD的定义,局部常量只能放到这里,而全局常量可以放在第一个<formset>元素的前面,也可以放到<formset>的后面)。如下面的代码所示:

<formset>     <constant>       <constant-name>mask</constant-name>       <constant-value>^[a-zA-Z0-9]*contentlt;/constant-value>     </constant>     <form name="firstValidatorForm">……     ……   </formset>

我们可以编写如下的代码来使用mask常量:

<var>    <var-name>mask</var-name>    <var-value>${mask}</var-value> </var>

Struts1.x系列教程(11):Validator验证框架高级应用(2)

时间:2011-01-10 BlogJava 银河使者

2. 变量

Validator框架通过<var>元素来定义变量。变量将作为<field>的子元素被使用。主要向depends属性值(如mask)以及<msg>的错误信息传递数据。如下面的代码通过变量required将“姓名”传递给了错误信息的第一个参数{0}。

<field property="name"  depends="required ">    <msg name="required" key="error.name.blank" />    <arg name="required" key="${var:required}" position="0" resource=&qu

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号