`
rickycm
  • 浏览: 69974 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Common validator进行服务器、客户端双重验证

    博客分类:
  • java
阅读更多
验证基础准备:

选用common-validator 组件最初的原动力是他可以方便的实现客户端和服务器端的双重校验,而且从Spring-module 0.5发布后,对common-validator提供了良好的支持。

现在就让我们来看看如何在Spring环境下进行方便的双重校验吧J

首先请下载Spring-module0.5和Common-validator组件包放在lib下(我这里使用的是commons-validator-1.3.0.jar和spring-modules-validation.jarßspring-module0.5里的包)。其次,我们要开始进行配置啦,首先配置一个validator,配置如下:

<bean id="validatorFactory"

        class="org.springmodules.validation.commons.DefaultValidatorFactory">

       <property name="validationConfigLocations">

           <list>

              <value>

                  classpath*:configure/validator/validator-rules.xml

              </value>

               <value>classpath*:configure/validator/validation.xml</value>

           </list>

       </property>

    </bean>

  

    <bean id="validator"

        class="org.springmodules.validation.commons.DefaultBeanValidator">

       <property name="validatorFactory" ref="validatorFactory" />

    </bean>

当然,上面要注意的一点是validator-rules.xml和validation.xml。validator-rules.xml我们可以直接引用Struts验证框架里的validator-rules.xml,这个文件很容易就Copy到了,而validation.xml是我们所要自定义的,这里我给出一个很简单的例子:

<form name="tYxs">

           <field property="password" depends="required,mask">

              <arg0 key=" tYxs.password" />

              <var>

                  <var-name>mask</var-name>

                  <var-value>^[0-9a-zA-Z]*$</var-value>

              </var>

           </field>

           </field>

    </form>

上面的文件指定了一个form名字为newuserform,其中包含了一个字段password,规则是不可为空和不能有除1-9,a-z以外的其他字符(熟悉Struts校验的人不计其数,这个也是一样的规则配置方法),多说一句,userForm.password为国际化资源,在介绍国际化的文章中讨论了J

使用Spring MVC进行表单提交的时候,SimpleFormControllor会默认调用Validator,我们使用的还是Spring提供的老方法,注入就可以了。下面给出一个SimpleFormControllor的简单配置方法:

<bean id="tYxsbController"

       class="mtn.gfkd.manage.controller.TYxsbController">

       <property name="tyxsbdao">

           <ref bean="tyxsbdao"/>

       </property>

       <property name="validator">

       <ref bean="validator"/>

       </property>

       <property name="commandName" value="tYxs" />

              <property name="commandClass" value="mtn.gfkd.manage.model.TYxs" />

       <property name="formView">

<!--  tiles标记-- >

           <value>manage.yxsb.insert</value>

       </property>

       <property name="successView">

           <value>manage.yxsb.index</value>

       </property>

    </bean>

如上面的配置所示,我们将Validator和Form bean声明在了控制器中,这样它会在数据进行绑定后进行校验。这里有一个需要注意的问题,直接使用Spring-module的DefaultBeanValidator有一个规范,不然会出现Validator [org.springmodules.validation.commons.DefaultBeanValidator@1db8a73] does not support command class 这个莫名其妙的错误,呵呵,这个一般是我们没有遵守它的命名规范,他的命名规范是你的commandClass的首字母必须改为小写,比如你的类名为TYxs,在validator.xml文件里的form名字必须声明为tYxs,这个问题为查Spring源码n次发现的bug阿,这个命名规则同时也影响到了commandName的设置了。

服务器端的校验我们就配置完成了,现在我们所要关注的就是客户端怎样生成JS校验了。

JSP文件我们所要做的工作很简单了,就是如下:

<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator"%>

<validator:javascript dynamicJavascript="false" formName="tYxs" staticJavascript="false" />

把如上代码放在对应的JSP文件中,呵呵,当然你的formName要和validator.xml里的名字设置成一样的就好了,这样在页面就会自动生成校验的javascript了。

最后要注意的就是怎样写form了,直接给出例子吧:

<form action="insertUser.htm" method="POST" enctype="multipart/form-data"  name="newuserform"  onSubmit="return validateTYxs(this)">

<spring:bind path=" tYxs.password">

                           <FONT color="red">

                           <B><c:out value="${status.errorMessage}"/></B>                              </FONT><input type="text" name="password " value="<c:out value="${status.value}"/>"/>

                     </spring:bind>

</form>

上面也是一个比较完整的使用Spring:bind 标签的例子,给出了校验错误信息,其中注意,生成的Javascript代码的校验函数名是form名字前加上validate,同时把首字母再换成大写。

恩,这样spring的校验就应用在客户端和服务器端了J
分享到:
评论

相关推荐

    validator框架客户端验证代码

    通过学习和使用这些代码,你可以更好地理解和掌握如何在实际项目中运用Validator框架进行客户端验证。 总结来说,Validator框架提供了一种高效且灵活的方式来处理数据验证,客户端验证则进一步提升了用户体验。这个...

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

    此外,Struts1.x的验证框架不仅限于服务器端验证,也可以结合JavaScript进行客户端验证,以提高用户体验。客户端验证可以通过在JSP页面中引入Struts的JavaScript库,然后利用`&lt;html:javascript&gt;`标签生成相应的验证...

    apach基于数据验证的工具包 commons-validator-1.3.1.jar

    Apache Commons Validator 是一个强大的数据验证框架,主要用于Java应用程序的数据输入验证。这个工具包提供了一种标准的方法来处理各种验证规则,比如检查电子邮件地址的有效性、日期格式、电话号码格式等,极大地...

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

    本文将详细介绍Struts验证器Validator的使用,包括基础配置、自定义验证器的创建,以及如何在Maven项目中管理和使用Eclipse进行编译。 **一、Struts验证器Validator的基本概念** Struts Validator是Struts框架提供...

    好用的bootstrapvalidator表单验证

    5. **与服务器端验证结合**:虽然BootstrapValidator主要负责客户端验证,但为了提高安全性,还需要结合服务器端验证。客户端验证可以提供即时反馈,而服务器端验证则确保数据的安全性。 6. **兼容性和优化**:确保...

    JS客户端表单验证框架

    在压缩包中的"JS表单客户端验证-Validator"文件中,用户可以找到详细的使用说明文档。这份文档通常包括框架的安装步骤、API参考、示例代码以及常见问题解答等部分,是快速上手和深入理解框架功能的关键资源。通过...

    common-validator

    3. **异步验证支持**:对于需要服务器端验证的情况,`common-validator`支持异步验证,可以发送AJAX请求进行实时验证。 4. **自定义错误消息**:用户可以自定义验证失败时显示的错误信息,提高用户体验。 5. **...

    Vue表单验证插件Vue Validator使用方法详解

    Vue Validator是Vue.js框架的一个强大插件,专门用于处理表单验证。它的主要目标是简化在Vue应用中创建和管理复杂表单验证的过程。在本文中,我们将深入探讨Vue Validator的使用方法及其核心特性。 首先,为了使用...

    表单验证控件commons-validator-1.3.1

    表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-...

    Struts Validator验证框架详细讲解.txt

    Struts Validator提供了一系列预定义的验证方法,这些方法封装在`org.apache.commons.validator.GenericValidator`类中,可以对各种数据类型进行验证: 1. **isBlankOrNull**:检查字段是否为空或null。 2. **...

    Demo——使用Spring的Validator接口进行数据验证

    这个Demo示范了怎么通过Spring的Validator接口来进行数据验证,包括Validator的复用、jsp错误信息的展示等。可参考本人博客: http://blog.csdn.net/oLanMoMo/article/details/50530352

    自定义基于jQuery的客户端表单验证工具

    我这里设计了一个简单的javascript客户端验证工具,在页面中只需要对要进行验证的表单(form)及其所属的表单域对象(input)进行属性声明,即可完成配置,基本不需要手工书写javascript代码即可完成验证工作。

    BootstrapValidator-0.5.3表单验证

    这通过使用`remote`验证器实现,它可以通过Ajax发送请求到服务器端进行验证。 在实际开发中,你可能需要结合使用jQuery或者其他的JavaScript库来操作表单元素。同时,记得在HTML中为每个需要验证的输入字段添加`...

    bootstrapvalidator 表单验证

    你可以通过定义`remote`验证器,向服务器发送请求进行验证。这在注册或登录等场景中非常有用。 总的来说,BootstrapValidator是前端开发中进行表单验证的理想工具,它易于使用、功能强大,且与Bootstrap的样式无缝...

    Validator验证框架 回顾ActionForm的表单验证,掌握Validator验证框架.zip

    在ActionForm时代,我们通常会在表单类中定义验证属性,如RequiredFieldValidator、CompareValidator等,然后在服务器端进行验证。 Validator验证框架则提供了一种更为灵活和强大的验证机制。这个框架允许开发者...

    bootstrapvalidator页面数据验证.zip

    BootstrapValidator是一款基于Bootstrap框架的前端数据验证插件,它提供了丰富的验证规则和优雅的提示样式,使得在网页表单中进行数据验证变得更加简单和直观。这个压缩包“bootstrapvalidator页面数据验证.zip”...

    Struts1的validator验证框架

    其中,Validator框架是Struts1用于客户端和服务端表单验证的强大工具,它能显著提高数据处理的安全性和准确性。本文将深入探讨Struts1 Validator框架的核心概念、配置与实现细节。 #### 一、Struts1 Validator框架...

    JQuery_客户端文本验证

    **jQuery 客户端文本验证** 在Web开发中,数据验证是必不可少的步骤,它可以确保用户输入的数据符合预期,防止无效或错误的信息进入系统。jQuery,一个轻量级的JavaScript库,提供了丰富的API来简化这一过程。本篇...

    Validator验证架框api

    4. **执行验证**:使用`Validator`的`validate()`方法对对象进行验证,如果验证失败,将返回一个`Set&lt;ConstraintViolation&gt;`集合,包含了所有违反的规则: ```java User user = new User(); Set...

Global site tag (gtag.js) - Google Analytics