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应用 Validator框架是Java Web开发中的一种常用的表单验证框架,主要用于对JavaBean的属性进行验证。它可以将验证规则与业务逻辑分离,使得代码更加简洁、易于维护。 传统的表单验证方式 在...
`Validator框架`是Java开发中用于数据验证的重要工具,尤其在基于Struts的Web应用程序中,它扮演着不可或缺的角色。Struts是一个流行的MVC(Model-View-Controller)框架,帮助开发者构建健壮且可维护的Java Web应用...
Struts的Validator框架是Java Web开发中用于处理用户输入验证的一种强大的工具,它与MVC架构中的控制器层紧密结合,提供了一种便捷的方式来确保用户提交的数据符合预设的业务规则。这个框架大大简化了数据验证的过程...
本文将深入探讨Struts1 Validator框架的核心概念、配置与实现细节。 #### 一、Struts1 Validator框架概述 Struts1的Validator框架主要负责在提交表单前对用户输入进行校验,确保数据的有效性和安全性。它支持多种...
Validator框架是Struts1.x的一个重要组成部分,主要用于处理客户端和服务器端的数据验证。在这个入门例子中,我们将深入理解Validator框架的基本概念、配置以及如何在实际项目中应用。 一、Validator框架简介 ...
6. **Integration with Struts Controller**:Validator框架与Struts控制器紧密集成,当验证失败时,控制器会阻止业务逻辑的执行,转而返回错误页面。 总结来说,Struts中的Validator框架提供了一种强大的方式来...
Struts Validator框架是Java Web开发中一个实用的工具,它简化了数据验证过程,提高了应用的质量。通过合理的配置和使用,开发者可以有效地防止因用户输入错误导致的问题,提升系统的安全性与用户体验。
Validator框架的引入,不仅极大地简化了Struts应用中数据验证的实现,还提高了代码的可读性和可维护性。通过将验证逻辑从`ActionForm`类中解耦,集中管理和配置,减少了代码冗余,降低了后期维护的难度。对于追求高...
Struts Validator框架是Apache Struts框架的一个组成部分,主要用于处理Web应用程序中的数据验证。这个框架提供了一种方便的方式来定义和执行验证规则,使得开发者能够轻松地在注册或其他表单提交过程中确保用户输入...
- Struts2可以与Spring框架无缝集成,此时Validator框架同样适用,Spring的`@Valid`注解可以与Struts2的验证框架一起工作。 7. **.classpath和.project文件** - `.classpath`是Eclipse项目中的配置文件,记录了...
Commons Validator是一个用于数据验证的库,而Struts则是一个MVC(模型-视图-控制器)框架,常用于构建基于J2EE的企业级应用。这篇博客讨论的是在使用Commons Validator 1.3版本与Struts 1.1版本时遇到的问题及其...
Struts Validator框架是Apache Struts框架的一个重要组成部分,由IBM公司提供支持,它主要用于Web应用程序中的数据验证。这个框架提供了一种结构化的方式来定义和执行客户端及服务器端的数据验证规则,确保用户输入...
然而,当涉及到多国语言环境时,Struts应用可能会遇到乱码问题。这通常是由于HTTP请求的编码与服务器处理编码不一致导致的。为了解决这个问题,我们可以使用Filter来统一处理请求的编码。一个常见的解决方案是使用`...
相比于Struts内置的ActionForm Bean验证方式,Struts Validator提供了更灵活、更强大的验证功能,能够处理复杂的验证逻辑,并且可以与Spring和Hibernate等其他框架无缝集成,形成完整的Struts2 + Spring + Hibernate...
总结,Struts的Validator框架提供了一种简单而有效的方法来处理Web应用中的数据验证。通过配置XML文件,定义验证规则,你可以轻松检查用户输入,确保数据质量。同时,它还支持自定义验证器和国际化,适应各种复杂的...
在Struts1.x中使用Common-Validator框架,你需要遵循以下步骤: 1. **引入依赖**:首先,你需要在项目的类路径下添加Common-Validator的jar包,通常这会是`commons-validator.jar`和`commons-digester.jar`。这些库...
**Validator框架的原理与工作流程** Validator框架基于XML配置文件来定义验证规则,这些规则包括字段的必填性、数据类型检查、长度限制等。当用户通过表单提交数据时,Struts会调用Validator组件,对输入的数据进行...
#### 安装与配置Validator框架 Validator框架是Jakarta Commons项目的一部分,也是Struts发行版的一部分。为了使用Validator框架,需要确保项目中包含了以下依赖: - **Jakarta ORO**: 提供正则表达式的支持,用于更...
在本教程中,我们将深入探讨如何在Struts应用中简单使用Validator框架,主要关注`validator.xml`配置文件的使用。 首先,让我们理解Validator框架的核心概念。Validator框架提供了一种声明式的方式来定义验证规则,...
《Struts应用开发完全手册》这本书可能是为了深入讲解Struts框架的使用和实践,通过书中各个章节的源代码,读者可以更好地理解并掌握Struts的核心概念和实际操作。 在描述中提到的"以数字命名的文件代表书中的章节...