`
少女杀手
  • 浏览: 131686 次
  • 性别: Icon_minigender_1
  • 来自: 约旦河西岸
社区版块
存档分类
最新评论

Struts1.x的validator框架使用

阅读更多

一、配置
    在使用validator校验框架时候先要对工程进行配置,添加validator-rules.xml和validator.xml两个文件,将其放到WEB-INF/目录下(与web.xml文件在同一目录下)
    在struts-config.xml中设置插件:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
  <set-property property="pathnames"     
    value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
value值用来指定验证规则的文件,多个验证规则文件要用逗号分割。
配置验证规则:
Validator框架有两个重要的配置文件:
<1>validation-rules.xml文件,
这个配置文件包好了一组可供应用程序使用的全局验证规则。
这个文件是所有应用程序都使用的,任何Struts应用程序也都能
使用。除非打算修改或扩展这组规则,否则无需修改这个文件!

注意1:需要在资源包(ApplicationResources.properties)中加上一下的“键-值”:
## label
label.userName=User name
label.password=Password
## key-value
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
errors.maxlength={0} can not be greater than {1} characters.
errors.invalid={0} is invalid.

errors.byte={0} must be a byte.
errors.short={0} must be a short.
errors.integer={0} must be an integer.
errors.long={0} must be a long.
errors.float={0} must be a float.
errors.double={0} must be a double.

errors.date={0} is not a date.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is an invalid credit card number.
errors.email={0} is an invalid e-mail address.
## Errors
error.username.required=<li>Your ID is wrong.</li>
error.password.required=<li>Your password is wrong.</li>
errors.header=<h3><font color="red">Validation Error</font></h3>
errors.footer=<hr>

因为,验证出错的时候,系统会自动在资源包中查找对应的错误消息,
比如:required验证规则出现错误时,就会输出“errors.required”的值。

<2>validation.xml文件
这个文件是专门用来验证页面指定的Field。
1)根元素:
validator.xml文件的“根元素(Root)”是form-validation,
意味着整个文件的内容包含在“<form-validation>”和“</form-validation>”之间,

2)元素global:
这个东西包含constant子元素,用来定义一个全局的“验证限制”,
以便在这个文件的其他地方使用这些验证规则。
例如:
     <global>
         <constant>
             <constant-name>userName</constant-name>
             <constant-value>^\s*[\w-]{0,30}$</constant-value>
         </constant>
         <constant>           
             <constant-name>password</constant-name>
             <constant-value>^\s*[.\w@#!$%^*()-]{6,20}\s*$</constant-value>
         </constant>
         <constant>       
             <constant-name>email</constant-name>
             <constant-value>^\s*([A-Za-z0-9]+(\.\w+)*@([\w-]+\.)+\w{2,3})\s*$</constant-value>
         </constant>
     </global>
这个例子就定义了一个全局的验证规则,名字是“zip”,具体的规则由“constant-value”指出。

3)formset元素:
这个可能是这个文件最重要的元素了,
主要负责的就是指定对哪个Field进行验证以及验证规则。
例如:
     <formset>
         <constant>
             <constant-name>zip</constant-name>
             <constant-value>^\d{6}$</constant-value>
         </constant>     
         <form name="userLogin">
             <field
                 property="userName"
                 depends="required,mask,minlength">
                 <arg0 key="label.userName"/>
                 <arg1 name="minlength" key="${var:minlength}" resource="false"/>
                 <var>
                     <var-name>mask</var-name>
                     <var-value>${userName}</var-value>
                 </var>
                 <var>
                     <var-name>minlength</var-name>
                     <var-value>4</var-value>
                 </var>
                 <msg name="mask" key="error.username.required"/>
             </field>
         </form>
     </formset>

 

二、使用
一旦你已经配置了验证器插件,这样它可以加载你的Validator资源,你只需要延长org.apache.struts.validator.action.ValidatorForm而不是org.apache.struts.action.ActionForm。然后当validate方法被调用,操作的从Struts配置name属性用于装载当前窗体的验证。表单元素的名称在确认配置属性应与动作元素的名称属性。

例如:struts-config.xml文件中某个action的配置<action attribute="userForm" name="userForm" path="/User"  validate="true" parameter="o"
    input="/User.do?o=toAdd"
    type="com.struts.action.UserListAction">
   <forward name="toAdd" path="xxx"/>
  </action>
validation.xml文件中配置:<form name="userForm">
此时validation.xml文件中某个form配置要验证的表单,此表单对应struts-config.xml文件中action中name配置为“userForm”的action。
也就是form中的name要和action中的name相同

另一种方法是使用动作映射路径属性。在这种情况下,延长ValidatorActionForm代替的是ValidatorForm。该ValidatorActionForm使用动作元素从Struts配置应符合表单元素的名称在确认配置属性路径属性。

例如:struts-config.xml文件中某个action的配置<action attribute="userForm" name="userForm" path="/User"  validate="true" parameter="o"
    input="/UserList.do?o=toAdd"
    type="com.struts.action.UserListAction">
   <forward name="toAdd" path="xxx"/>
  </action>
validation.xml文件中配置:<form name="/User">
此时validation.xml文件中某个form配置要验证的表单,此表单对应struts-config.xml文件中action中path配置为“/User”的action。
也就是form中的name要和action中的path相同。

常见问题:
1、当一个Action中有多个ActionForward时,而且此时只需要对某个ActionForward进行验证,这时就得要求用到“动作映射路径”配置。
在struts-config.xml为某个action配置多次,而各自的path不同。validation.xml中的form配置要进行验证的action
如下: <action attribute="userForm" name="userForm" path="/User"  validate="true" parameter="o"
           input="/UserList.do o=toAdd"
           type="com.struts.action.UserListAction">
   <forward name="toAdd" path="xxx"/>
       </action>
       <action attribute="userForm" name="userForm" path="/UserEdit"  validate="true" parameter="o"
           input="/UserList.do o=toEdit"
           type="com.struts.action.UserListAction">
   <forward name="toAdd" path="xxx"/>
       </action>
  validation.xml中配置:
     <form name="/UserEdit">....</form>
如果使用的是spring1.2代理,Spring配置文件需要对每个action进行配置。
此时程序执行UserListAction时,只有执行“/UserEdit”相关路径时才会进行校验,执行“/User”时,不会进行校验。
因此对需要校验的ActionForward秩序在访问的时候访问路径由“/User”改为“/UserEdit”即可。
2、action中的input必需指定:input="/UserList.do?o=toAdd",当使用校验框架时,不指定input,程序不能正常执行。
3、<message-resources null="false" parameter="com.struts.ApplicationResources" />
   此配置是配置属性文件。 null="false" 必需指定,否则不会显示错误信息。

4、属性文件配置。
   英文属性文件名:ApplicationResources_en.properties
   中文转码前属性文件名:ApplicationResources_zh.properties
   中文转码后属性文件名:ApplicationResources_zh_CN.properties
   先写好中文转码前属性文件,然后用JDK生成对应的转码后文件。
   命令: 目录 native2ascii -encoding gbk A** A**CN

官方文档地址:http://struts.apache.org/1.3.10/faqs/validator.html
   详细配置信息里面有

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    struts1.x validator框架验证入门例子

    在这个入门例子中,你可以创建一个简单的表单,使用Struts1.x的Validator框架进行验证。首先创建表单HTML页面,然后编写对应的ValidatorForm和Action,最后配置struts-config.xml和ValidatorRule.xml。运行项目,...

    java Struts 1.x 框架 Web 开发

    9. **Validator框架**:Struts 1.x 的Validator框架用于数据验证,可以定义一系列规则来检查ActionForm中的属性值,确保数据的正确性。 10. **生命周期管理**:Struts 1.x 使用Servlet容器管理Bean的生命周期,对于...

    struts1.x和struts2.x区别

    Struts1.x的验证机制基于ActionForm,利用Commons Validator等库进行数据校验,而Struts2.x则采用了更为强大的验证框架,如XWork Validator,支持链式验证和更复杂的验证规则,使得数据验证更加全面和细致。...

    struts1.x使用common-validator验证框架

    在Struts1.x中使用Common-Validator框架,你需要遵循以下步骤: 1. **引入依赖**:首先,你需要在项目的类路径下添加Common-Validator的jar包,通常这会是`commons-validator.jar`和`commons-digester.jar`。这些库...

    struts1.x apps 所有最新的Struts1.x项目应用

    Struts1.x是一款经典的Java Web框架,由Apache软件基金会开发并维护。它是MVC(Model-View-Controller)设计模式的实现,极大地简化了Java Web应用程序的开发过程。本资源集合包含了所有最新的Struts1.x项目应用,为...

    Struts1.x的验证框架示例

    Struts1.x是一个经典的Java Web开发框架,由Apache软件基金会维护。它的主要目的是为了简化MVC(模型-视图-控制器)架构的实现,提高Web应用程序的可维护性和可扩展性。验证框架是Struts1.x的一个重要组成部分,用于...

    搭建struts1.x的jar包

    在Struts中,Validator框架可以与ActionForm配合使用,对用户的输入进行实时验证。 `commons-logging.jar`是Apache Commons Logging库,提供了一种灵活的日志记录机制。无论你的应用程序使用哪个日志框架(如log4j...

    解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证的示例

    解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。

    Struts1.x 中文帮助文档

    9. **Validator框架**:Struts1.x包含一个内置的验证框架,可以方便地验证用户输入,防止非法数据进入系统。 10. **Session和Request范围的对象管理**:Struts1.x提供了一种机制来管理请求和会话范围内的对象,避免...

    struts的总结(struts1.x)

    ### Struts 1.x 总结 #### 一、Struts 框架概述 Struts 是一个基于 Java 的开源框架,它实现了 Model-View-Controller (MVC) 设计模式,帮助...希望这些内容能帮助读者更好地理解和掌握 Struts 1.x 框架的使用方法。

    struts2.x jar

    1. **Struts2核心库**:`struts2-core.jar`是框架的基础,包含了Action、Interceptor、Result等核心概念的实现,以及Struts标签库和配置解析器。 2. **插件库**:如`struts2-convention-plugin.jar`用于自动配置...

    struts1,struts教程,struts1.x入门

    11. **Validator框架**:Struts1包含了一个内置的验证框架,可以用来验证用户输入的数据,提供了一种统一的验证规则定义方式。 通过上述知识点的学习,初学者可以快速掌握Struts1的基础操作,进行简单的Web应用开发...

    Struts1.x.pdf

    以上是对Struts 1.x框架的基本介绍及其在MVC设计模式中的具体实现方式,以及相关的构成元素和配置细节。通过深入理解这些内容,开发者可以更好地利用Struts框架构建高效、灵活且易于维护的Web应用程序。

    Struts1.xpdf文件

    Struts 1.x是Apache Struts框架的第一个版本,它是一个用于开发Java Web应用程序的开源MVC(Model-View-Controller)框架。Struts 1.x的设计目的是为了解决Web应用程序开发中的常见问题,比如将业务逻辑与用户界面...

    Struts1.x_SQL2005增删改查分页验证国际化

    Struts1.x是一个经典的Java Web开发框架,它在2000年代中期广泛应用于企业级应用,提供了模型-视图-控制器(MVC)架构,帮助开发者构建结构清晰、易于维护的Web应用。SQL2005指的是Microsoft的SQL Server 2005数据库...

    struts验证器validator使用,以及自定义验证器

    Struts是Java Web开发中的一个流行MVC框架,它的核心组件之一是Validator,用于处理表单数据的验证。本文将详细介绍Struts验证器Validator的使用,包括基础配置、自定义验证器的创建,以及如何在Maven项目中管理和...

    MyStrutsApp:实现struts 1.x框架的应用程序

    在MyStrutsApp中,你可能还会发现关于错误处理和表单验证的代码,例如使用Struts的Validator框架对用户输入进行检查。 9. ** strut tags** Struts框架提供了一系列JSP标签,如、等,方便在JSP页面中构建表单和...

    struts用到的jar和struts源文件.rar

    Struts是Apache软件基金会下的一个开源项目,是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架。...不过要注意,Struts 1.x已经较为老旧,现在更推荐使用Struts 2或Spring MVC等更新的框架。

    struts1学习教程

    Struts 1.x 是一款经典的Java Web框架,用于构建基于MVC(Model-View-Controller)模式的应用程序。本教程将带你深入理解Struts 1.x的基础知识和使用技巧。 首先,我们需要理解Struts 1.x的核心概念。Struts 1.x...

Global site tag (gtag.js) - Google Analytics