`

Validator框架与struts应用

阅读更多
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框架与struts应用ppt

    validator框架的应用

    validator of struts, 验证框架,主要包括4种方法,具体可以参考博客!

    struts validator验证框架例子

    struts应用中使用了validator验证框架,它为struts提供了灵活的验证规则,而无需编程

    精通Struts基于MVC的Java Web设计与开发 孙卫琴 光盘

    第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...

    精通 Struts:基于 MVC 的 JavaWeb 设计与开发(PDF)

    第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...

    Struts应用开发完全手册源代码

    所发布的是《Struts应用开发完全手册》的全部源代码,以数字命名的文件代表书中的章节!

    精通Struts_基于MVC的Java Web设计与开发

    第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...

    精通struts:基于mvc的java web设计与开发part3

    第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator 验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...

    精通struts:基于mvc的java web设计与开发part2

    第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator 验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...

    精通struts:基于mvc的java web设计与开发part1

    第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator 验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...

    Struts 2校验框架的应用

    (1):对用户名的检验规则是用户名不能为空,... ... (3):年龄的校验规则是必须是整数,且在1到120之间。 (4):生日的校验规则是必须在1950-1-1到1990-1-1之间。 (5):所有提示信息均要用到国际化资源文件实现。 ...

    实战STRUTS 电子书

    基于Struts应用程序框架构造的应用程序,除了可以复用业已证明可用的解决方案外,同时也可以使得开发人员更加关注应用程序的特性。Struts是由Apache软件基金会支持的开源软件。 本书完整介绍了Struts框架结构,涵盖...

    基于struts的自动验证validator

    Validator验证框架高级应用,上面有姓名、密码、年龄、email等

    struts高级实战进阶

    传智播客的struts高级实战进阶 MVC模式的回顾 回顾Struts的请求处理时序图 使用超连接的技巧 封装Formbean数据时的问题 防止表单重复提交 ...Validator框架 Struts请求处理过程的源码分析与digester

    基于MVC的java Web设计与开发

    第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles...

    Struts-JSP-Hibernate-frameworks:在Java Struts Framework上进行实践,还包括Struts Validator框架,Java Server Pages(JSP)和Hibernate以连接到SQL Oracle DMBS。 另外,通过创建银行Web应用程序和应用这些技术的Forum Web应用程序来探索和组合这些技术。

    Struts-JSP-Hibernate框架在Java Struts Framework上进行实践,还包括Struts Validator框架,Java Server Pages(JSP)和Hibernate以连接到SQL Oracle DMBS。 另外,通过创建银行Web应用程序和应用这些技术的Forum ...

    Struts1.3 备忘笔记

    08 Struts_08DynaValidatorForm : Struts框架的Validator验证框架 09 Struts_09Token : Structs的令牌机制,避免重复提交问题 10 Struts_10SmartUpload : structs的文件上传 11 Struts_11Internationalize : Structs...

    structs程序设计从入门到精通word文档

    1.5 你的第一个struts应用程序 8 第2章深入Struts结构 8 2.1人介绍应用框架 mvc和model2 8 2.2 Struts原理、开发及项目实施 8 2.3使用STRUST控制流 8 2.4讨论STRUTS的优缺点 9 2.5 Struts入门经验 9 2.6用strtus制作...

    非常好的struts2教程

    MVC模式的回顾 回顾Struts的请求处理时序图 使用超连接的技巧 封装Formbean数据时的问题 防止表单重复提交 使用复选框的技巧 使用下拉列表框的技巧 ...Validator框架 Struts请求处理过程的源码分析与digester

    strtus 在行动

    使用领先的Java框架构建Web应用 成果就是Struts in Action。它完全是一本“团队书籍”。David Winterfeldt, Struts Validator的创建者,非常乐意地撰写了Validator 一章。同样,Cedric Dumoulin,Tiles的创建者,也...

Global site tag (gtag.js) - Google Analytics