现在的位置: 首页 > 综合 > 正文

Commons-Validator

2013年05月24日 ⁄ 综合 ⁄ 共 2035字 ⁄ 字号 评论关闭
文章目录

1.基本文件安装

1.1 从http://jarkarta.apache.org/commons/validator/ 下载commons validator的1.3版

1.2 http://springmodules.dev.java.net 下载springmodules 0.4。但只有springside所带的版本能够支持Commons Validator 1.2/1.3。

1.3 将下列文件添加到项目
      *把上述两个jar加入到web-inf/lib
      *在web-inf 增加 springside带的validator-rules.xml
      *在javascript目录增加springside带的validator.jsp

1.4  修改applicationContext.xml
       加validatorFactory节点和beanValidator节点
       参照springside的applicationContext.xml
       注意当前版本 validatorFactory只能写在applicationContext-*.xml而不能写在*-servlet.xml.

1.5 修改项目的i18N文件
      参照/misc/i18n/messages_zh_CN.properties 的# -- validator errors --部分

1.6 修改bookstore-servlet.xml ,为controller注入beanValidator

    <bean name="bookManagerController" class="org.springside.bookstore.web.BookManagerController" autowire="byName">
     <property name="validators" ref="beanValidator"/>
    </bean>

不过推荐把beanValidator改名为validators,默认注入。

1.7 复制springside自带的validator.xml 作为基础进行修改.注意文件里必须声明使用Commons Validator 1.3

2.使用

 参照springside中图书管理的例子。因为需要在Client和Server Side同时使用,而且Server Side默认的ComanndName命名法为Domain类的小写如order, book, 所以Form-Name也取book, order.

2.1 定义validator.xml文件

        严重BS validator.xml继承了struts只要 xml解释器方便,不管程序员劳动量的语法。相对的spring比它要好些。appfuse推荐用xdoclet,在pojo上annotation注释并生成validator.xml。

        validator的类型和配置参数我没有一个很明确的文档,大家随便google。

        另,validator项目时有升级,请留意版本间与语法的不同。其中key="book.name"是i18n的key name,也可以直接写中文key= "名称"。validator找不到名称对应的i18nkey时就会直接显示"名称"

<form-validation>
    <formset>
        <form name="book">
            <field property="name" depends="required">
                <arg position="0" key="book.name"/>
            </field>
        </form>
    </formset>
</form-validation>

2.2 使用clientside javascript 校验

     commons-validator唯一让我觉得可取的地方, 就是和Rife一样,可以在元数据一处设置校验规则,而在client,server两端同时应用了。

   参考editBook.jsp

  <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<validator:javascript formName="book" staticJavascript="false"/>
<form name="book" onsubmit="return validateBook(this)">

2.3 server side校验

     只要把统一定义的beanValidator 设置给controller的validators变量即完成任务,剩下的就是spring multi-actionController或springside baseController的事情了。

抱歉!评论已关闭.