在Struts中使用Validator框架(1)form-validation globalvalidatornamerequiredclassnameorg.apa
在Struts中使用Validator框架(1)
<form-validation> <global> <validator name="required" classname="org.apache.struts.util.StrutsValidator" method="validateRequired" 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.required"/> <validator name="minlength" classname="org.apache.struts.util.StrutsValidator" method="validateMinLength" methodparams="java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionErrors, javax.servlet.http.HttpServletRequest" depends="required" msg="errors.minlength"/> </global></form-validation>
应用程序使用的每个Validator对应一个元素。在例一中给大家展示了两个Validator,一个是请求Validator,另一个是最小长度Validator。元素支持许多属性。这些属性是必要的,用于告知框架这个Validator应当调用哪个正确的类和方法。例如,例一中的请求Validator元素表明这个Validator将调用org.apache.struts.util.StrutsValidator类的validateRequest()方法。Validator也可能要依赖另一个Validator,如例一中的最小长度的Validator就是这样一个例子,它包含一个depends属性,用它来表示这个Validator将依赖于请求Validator。msg属性用一个键值指定一个资源绑定,框架将用它来生成正确的错误信息。资源绑定的使用有益于错误信息的本地化。
元素还支持子元素,允许你指定一个客户端运行的javascript函数。这样服务器端和客户端验证可以在同一处指定,这使应用程序的维护变得简单。
validation.xml文件 Validator框架的第二个配置文件就是这个叫validation.xml的文件。其实你可以随意把它命名为你喜欢的任何名字,也可以把它放到validator-rules.xml文件中。
validation.xml用于把你在validator-rules.xml中定义的各个Validator和你的应用程序中的组件映射起来。由于我们在这里讨论的是在Struts中使用Validator框架,那么在这里validation.xml就是把这些Validator和Struts的ActionForm类建立映射。ActionForm类其实是一个类似JavaBean一样的类,在Struts中用于捕捉用户输入并帮助传输这些输入到下一级应用程序组件。ActionForm也提供了在用户输入被传到业务逻辑层之前验证这些输入的便利场所。例二是一个简单的validation.xml:
例二:一个简单的validation.xml文件
<form-validation> <formset> <form name="checkoutForm"> <field property="firstName" depends="required"> <arg0 key="label.firstName"/> </field> <field property="lastName" depends="required"> <arg0 key="label.lastName"/> </field> </form> </formset> </form-validation>
例二向大家展现了一个name属性叫checkoutForm的一个form元素。checkoutForm是一个在Struts配置文件中定义的一个ActionForm Bean。所以,例二的XML文件就是把这个ActionForm Bean和请求Validator建立映射,Bean的firstName和lastName属性分别对应XML文件中相应的firstName和lastName field元素。
其实它还有许多其它作用,如可以在validation.xml中定义常量和全局变量,用于在整个文件中使用,当你想使时可以方便的反复使用。对于validation.xml的元素和属性更详细的解释,可以下载jakarta.apache.org/struts/dtds/validation_1_1.dtd参阅。
作者:Chuck Cavaness 译者:javaduke?
?
?
出处:http://blog.csdn.net/ezerg/archive/2004/10/16/139345.aspx
编程小语
作者Blog:http://blog.csdn.net/ezerg/