Validatro框架以成为Jakarta的公共项目的一部分,可以从http://jakarta.apache.org/commons/下载单独的Validator框架,在Struts中已经呆了这个框架。
Validator主要依赖两个jar包
Jakarta-oro.jar:-提供一组处理文本的类,具有文本替换、过滤、和分割功能。
Commons-validator.jar:提供了一个简单、可扩展的验证框架,包含了通用的验证方法和验证规则。
在用Struts中用这个框架,需加入这两个包,用起来感觉还不错。
下面介绍一下。
Validator采用基于两个xml文件的方式来配置验证规则,分别为validation.xml,validator-rules.xml。在struts应用中,需放到web-inf目录下。
1.validator-rules.xml
这个文件包含了一组验证规则,对所有struts应用都适用。一般情况不用修改这个文件,除非要修改或扩展默认规则。如果要给应放到另一个xml文件中,而不是直接添加到validator-rules.xml文件中,这样当Validator升级时,不用修改validator-rules.xml文件。
2.validator.xml文件
这个文件是针对于具体struts应用的,他可以为应用中的ActionForm配置验证规则。而不用编码实现验证。
例如一个验证登陆form的例子,要求用户名必须填写,秘密要求必填、最大、最小长度及其内容的要求。
<form-validation>
<global>
<!-- 密码由数字、26个英文字母或者下划线组成的字符串 -->
<constant>
<constant-name>pwd</constant-name>
<onstant-value>^w+$</onstant-value>
</constant>
</global>
<formset>
<form name="loginForm">
<!-- 这里的用户名使用邮箱,验证时使用正则表达式进行验证 -->
<field property="user.userId" depends="required">
<arg0 key="user.userId" />
</field>
<field property="user.userPwd" depends="required,minlength,maxlength,mask">
<!-- msg name="mask" key="errors.invalid" /-->
<arg0 key="user.userPwd" />
<arg1 name="minlength" key="${var:minlength}" resource="false" />
<arg2 name="maxlength" key="${var:maxlength}" resource="false" />
<var>
<var-name>mask</var-name>
<var-value>^w+$</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>6</var-value>
</var>
<var>
<var-name>maxlength</var-name>
<var-value>20</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
validator.xml和validator-rules.xml文件的语法不在这里说明。
3.Validator插件
为了在struts中用validator,可以用插件方式加载Validator框架,需在struts配置文件中配置ValidatorPlugIn插件,同时写明两个xml文件的路径。
应用启动时,Strust会加载这个插件,并调用他的init()方法,init()方法根据pathnames加载
相应的validator-xml,validator.xml文件,把验证信息读入到内存中。
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"
property="pathnames" />
</plug-in>
4.Validator和ActionForm
Validator框架不能直接org.apache.struts.action.ActionForm。应采用ActionForm的两个子类
ValidatorActionForm和ValidatorForm
DynaValidatorActionFrom继续自DynaValidatorForm
支持动态在ActionFrom中使用Validator框架
ValidatorFormActionForm继承ValidatorForm
支持在标准ActionForm中使用Validator框架。
DynaValidtaorForom 和ValidatorForm类都实现了validator()方法,如果验证失败,就会返回包含错误消息的ActionMessage对象,并把该对象添加到ActionErrors集合对象中,由validator方法最后返回ActionErrors对象。
ValidatorForm有一个子类ValidatorActionForm
ValidatorForm
Strust配置文件的元素的name属------>validator.xml文件 元素的name属性
ValidatorActionForm
Strust配置文件的元素的path属------>validator.xml文件 元素的name属性
Validator框架提供这两个类目的在于可以更加精确的控制执行验证的条件。
例如
loginForm表单对应两个验证规则A、B。对应login、cancel两个动作。
如果对于这两个动作都要执行规则A、B。则可以扩展一个ValidatorFom类loginForm然后配置
<formset>
<form name=”loginForm”>
验证规则A
验证规则B
.</form>
….
</formset>
如果对于用户的login动作,执行规则A。对于cancel动作执行B规则。则可以扩展一个ValidatorActionFom类
loginForm
然后配置
<formset>
<form name=”login”>
验证规则A
.</form>
<form name=”cancel”>
验证规则B
.</form>
</formset>
而DynaValidatorForm和DynaValidatorActionForm,区别和ValidatorFrom和ValidatorActionForm的区别一样
5.在validator框架中使用JavaScript
默认情况下,validator框架在服务器端执行表单验证。也可以在客户端验证。
如果在客户端验证,需要使用struts的标签,他能在jsp页面中生成用于客户端验证
的JavaScript的脚本。
1) 在validator-rules.xml文件的元素中配置元素默认struts框架的validator-rules.xml文件已经包含了javascript子元素。也可以将这些javascript集中放到一个validator.js的文件中,也页面中引入代码
< script language="Javascript1.1" src="js/validator.js">< /script>
2) 在Jsp页面中包含< html:javascript>
< html:javascript formName=”loginForm”> 这个标签的form的name属性制定需要验证的表单名字,
他能够访问为表单配置的验证规则的javascript元素,把包含的脚本写到jsp页面中,生成validateLoginForm的函数,负责执行验证逻辑
3) 对需要验证的表单定义onsubmit事件
4)代码
< html:form action="manageContract.do" onsubmit="return validateContractForm(this);">
5) 用户在表单上提交后,就会调用
标签生成的js脚本validateLoginForm函数,执行验证。如果验证失败,就会弹出对话框提示,
不会提交的服务器端。
小结
使用步骤
1) 创建扩展ValidatorForm或ValidatorActionForm类的ActionForm,如果使用动态ActionForm,
则不用扩展DynaValidatorForm或DynaValidatorActionForm类的子类,可以直接进行第二步
2) 在struts文件中配置form和action元素
3) 把validator框架使用的文本信息添加到应用的Resource Bundle中
4) 代码
< message-resources parameter="com.web.ApplicationResources" />
5) 在validatorxml文件中为表单配置验证规则
6) 在struts配置文件中配置validatorPlugIn插件
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" property="pathnames"/>
</plug-in>
一个比较详细的例子:
http://hi.baidu.com/pengfei%5Ft/blog/item/fe323cc73e576ddcd000600c.html
分享到:
相关推荐
### Struts1的Validator验证框架详解 在Java Web开发领域,Struts1作为一个经典且流行的MVC框架,提供了丰富的功能来构建动态Web应用。其中,Validator框架是Struts1用于客户端和服务端表单验证的强大工具,它能...
### Struts Validator 验证框架详细讲解 #### 引言 在Java Web开发中,数据验证是确保应用程序安全性和用户体验的重要环节。Struts框架作为早期流行的MVC框架之一,提供了强大的验证机制——Struts Validator,它...
`使Struts支Validator.doc`文档可能进一步详细介绍了如何在Struts项目中集成和使用Validate框架,包括如何创建自定义的验证器类型,以及如何处理复杂的验证逻辑。 总之,结合Struts和Validate框架可以实现高效且可...
在Struts框架中,Validator-rules主要通过XML配置文件来定义验证规则。这些规则涵盖了各种验证条件,如非空检查、长度限制、格式校验(如电子邮件、电话号码等)以及自定义验证。以下是对Struts的Validator-rules的...
### Validator验证框架详解 #### 一、概述 Validator验证框架是一种强大的工具,它与Struts框架结合使用,用于实现Web应用程序中的数据验证功能。通过使用Validator框架,开发人员可以简化验证逻辑,提高代码的可...
Struts2 验证框架详解 Struts2 验证框架是基于 Java 语言的 Web 应用程序框架,提供了一个强大的验证机制,以确保用户输入的数据满足业务逻辑的要求。在 Struts2 中,验证机制是通过 validator 来实现的,该机制...
如果你的项目中使用了Spring,那么你需要在`struts.xml` 中配置Spring对象工厂,以使Struts2能够与Spring容器交互,加载和管理Action类。 通过以上步骤,你就可以在Struts2项目中配置并使用验证框架了。这不仅可以...
### Struts2 最全验证框架知识点详解 #### 一、Struts2 验证框架概述 Struts2 是一个基于MVC模式的Java Web开发框架,它提供了丰富的功能来简化Web应用的开发过程。其中,Struts2的验证框架是其重要的组成部分之一...
### Struts Validator框架详解 #### 引言 在企业级应用开发中,数据验证是确保系统稳定性和安全性的重要环节。Struts框架,作为Java Web应用的基石之一,提供了丰富的功能来构建复杂的Web应用。其中,Validator...
二是使用Struts的Validator框架,它提供了一种更灵活的校验规则定义方式,可以在配置文件中定义校验规则,然后在Action中调用。 **5. Validator框架** Struts的Validator框架提供了强大的表单验证功能,可以对用户...
Struts2的检验证框架基于Apache Commons BeanUtils和Validator API,提供了灵活的数据验证机制。它允许开发者定义验证规则,并在用户提交表单时自动执行这些规则,从而提高应用的安全性和用户体验。 2. **验证配置...
### Struts十大验证框架知识点详解 #### 一、Struts框架简介 Struts是一个开源的MVC(Model-View-Controller)架构实现,主要用于Java Web应用程序的开发。它通过将业务逻辑与用户界面分离,提高了代码的可维护性...
### Struts1.2中的Validation验证框架实现步骤详解 #### 一、环境配置与准备工作 在Struts1.2框架中实现验证功能首先需要完成环境配置。这包括添加必要的库文件(JAR包)、配置XML文件等。 ##### 1.1 添加...
Struts2 提供了一个强大的验证框架,允许用户创建自定义验证器来满足各种需求。 #### 二、自定义验证程序的实现 ##### 1. 实现 Validator 接口 为了实现自定义的验证器,首先需要继承或实现 Struts2 的 Validator...
下面将详细介绍Struts验证框架中的各种验证类型及其应用场景。 ### 枚举类型:ValidatorType `ValidatorType`是Struts验证框架中预定义的一系列验证类型的集合,包括但不限于: - **Field校验字段**:针对单个...
### Struts2.11的Validator框架详解 #### 引言 随着Web应用复杂度的增加,用户输入数据的有效性和安全性越来越受到重视。Struts框架作为一款流行的企业级Java Web应用开发框架,提供了丰富的功能来简化开发过程。...
通过引入第三方验证框架(如Hibernate Validator),可以在Action类中使用注解来实现数据验证。 **示例代码**: ```java public class MyAction { @NotNull(message = "Username cannot be empty") private ...
### Validator框架详解 #### 重要性与必要性 在现代Web应用开发中,数据验证是一项至关重要的任务。正确的数据验证可以防止非法数据进入系统,确保数据的准确性和完整性,提高用户体验,同时也增强了系统的安全性...