`

spring 注解方式下使用commons-validator 验证表单

 
阅读更多
原文: http://www.programgo.com/article/12411299733/
参考:
spring(3) mvc 注解验证springmodules common validator (注解验证) http://blog.csdn.net/zheng963/article/details/48681057
实战springmodules common validator http://blog.csdn.net/sunxing007/article/details/4660262

1.使用spring-modules-validation.jar ,
2.并且引入commons-validator.jar及相关的包,
3.一个标准的validator-rules.xml文件,和自定义的validation.xml文件,
4. 在*-servlet.xml中加入:
    <!-- 表单验证管理 -->
    <bean id="beanValidator"
        class="org.springmodules.validation.commons.DefaultBeanValidator">
        <property name="validatorFactory" ref="validatorFactory" />
    </bean>
    <bean id="validatorFactory"
        class="org.springmodules.validation.commons.DefaultValidatorFactory">
        <property name="validationConfigLocations">
            <list>
                <value>WEB-INF/validator-rules.xml</value>
                <value>WEB-INF/validation.xml</value>
            </list>
        </property>
    </bean>

5. 在验证表单的处理参数中加入:
@ModelAttribute("user") User user, BindingResult bindingResult

6. 在处理提交内容前加入:    
validator.validate(jituanmk, bindingResult);


表单验证的例子:
首先配置好上述的1-4的内容,然后在表单的处理方法中,作如下处理:
    @RequestMapping("/userUpdate")
    public String processJituanmkUpdate(@ModelAttribute("user")  User user, BindingResult bindingResult, //此处加入验证对象,注意这两个参数必须紧挨着,以方便spring框架绑定
        Model model ) throws IOException {
        validator.validate(user, bindingResult);//使用validator.xml验证表单对象
        if (bindingResult.hasErrors()) {            //发生错误,把错误信息输出回表单页
            logger.error(bindingResult.getFieldErrors());
            model.addAttribute("errors", bindingResult.getFieldErrors());
            return "userModify";
        }
        ... //没有错误,继续处理


validaton.xml的编写与在struts中一致,需要注意的是:
<form name="user"> 中的name值是首字母小写的验证对象的类名。这个如果写错了,当然就得不到正确的验证结果。
spring-2.5+springmodules-0.9 ,测试通过。

其他验证方案,
1.可以使用@InitBinder注解绑定数据,参考资料2中详述,在spring发布包中的samples中的petclinic。
2.可以使用实现spring提供的Validator接口来处理。
或许还有其他方案,不过感觉对于平常的应用,使用validator.xml是最方便的,毕竟至少不需要写那么多用于验证的代码。


参考:
1.http://www.ibm.com/developerworks/cn/java/j-lo-spring25-mvc/
2.http://www.infoq.com/cn/articles/spring-2.5-ii-spring-mvc
分享到:
评论

相关推荐

    Spring-Reference_zh_CN(Spring中文参考手册)

    5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 5.4.2.1. 注册用户自定义的PropertyEditor ...

    SSH整合类库分析spring3.0.4+hibernate3.5.5+struts2.2.1

    10. `commons-validator.jar`:提供了校验框架,用于表单验证。 11. `ezmorph.jar`:对象转换库,用于数据类型的转换。 12. `dwr.jar`:直接Web远程调用框架,支持AJAX远程调用。 这些Jar包的组合使用,使得SSH框架...

    jqgrid and java

    - `commons-validator.jar`:Apache Commons Validator提供表单验证功能。 这些库在Java项目中扮演着重要角色,比如在处理HTTP请求、数据转换、对象建模、集合操作等方面。在与jqGrid集成时,可能会用到这些库来...

    struts + hibernate + spring 用到的jar包

    - Hibernate相关的jar:hibernate-core, hibernate-entitymanager, hibernate-validator等,用于ORM和数据验证。 - Spring相关的jar:spring-context, spring-web, spring-aop, spring-jdbc, spring-orm等,提供DI、...

    spring-boot-file-upload.zip

    这可以通过自定义的`Validator`实现,或者使用Spring的`Validator`接口配合自定义规则。 最后,前端部分通常会使用编辑器组件(如CKEditor、TinyMCE等)来实现用户界面。这些编辑器允许用户选择本地文件并将其上传...

    SpringMVC依赖包

    10. **hibernate-validator.jar**:提供了JSR-303/JSR-349验证规范的实现,用于校验入参和对象属性。 导入这些依赖后,开发者可以方便地使用SpringMVC提供的注解(如@Controller、@RequestMapping、@Service、@...

    spring chm文档

    5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP...

    Tomcat5.5 for Struts几个jar包

    13. **commons-validator.jar**(如果使用Struts验证框架):提供了表单验证的工具和实现。 在Tomcat 5.5环境下,为了使Struts能够正常工作,需要将上述jar包复制到Tomcat的`lib`目录下,或者直接在应用的`WEB-INF/...

    Struts 之旅 - 验证vilidator

    Struts 是一个经典的Java Web开发框架,用于构建可维护、结构清晰且易于扩展的企业级应用程序。...在实际项目中,还可以结合使用Spring Validation或Apache Commons Validator等库,进一步增强验证功能。

    struts1.2-jars.rar 所有jar包

    5. `commons-validator.jar`:Apache Commons Validator,提供表单验证功能,可以自定义验证规则。 6. `xalan.jar`、`xercesImpl.jar`、`xml-apis.jar`:XML解析相关的库,用于处理XML文档。 三、Struts1.2工作原理...

    spring快速入门教程

    14. **添加验证功能:** 使用Commons Validator进行表单验证。 #### 三、具体实施细节 **1. 下载必备组件** - **JDK1.4.2或以上版本:** 提供Java运行环境。 - **Tomcat5.0+:** 作为Web服务器容器。 - **Ant...

    struts2用户登录实例的validator后台校验

    Struts2的Validator框架是基于Apache Commons BeanUtils和Apache Commons DBCP的,它可以自动将表单字段映射到Action类的属性,并对这些属性进行验证。在用户登录场景下,通常需要验证用户名和密码是否有效,如非空...

    spring+hibernate+structs经典入门

    - 为了确保数据的有效性和一致性,使用Commons Validator库进行表单验证。 - 在Action类中添加验证逻辑。 #### 四、总结 - 本章介绍了如何使用Struts作为前端框架、Spring作为中间层以及Hibernate作为后端技术来...

    ssm框架介绍及ssm整合配置文件源代码

    Spring MVC 提供了一系列的功能,如表单验证、文件上传、国际化支持等,大大简化了 Web 开发的过程。 ##### 1.3 MyBatis框架 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis ...

    SSH整合jar包

    Struts通过Action和ActionForm对象处理用户请求,使用Tiles进行视图管理,提供了强大的表单验证功能。 3. **Hibernate**:Hibernate是一个对象关系映射(ORM)框架,它允许开发者用Java对象来操作数据库,而无需...

    spring mvc 所需的全部jar包

    13. **validation-api.jar** 和 **hibernate-validator.jar**:JSR 303/JSR 349验证API和Hibernate验证实现,用于表单验证。 14. **jackson-databind.jar**,**jackson-annotations.jar**,**jackson-core.jar**:...

    SSH集成所需要的jar

    Struts2提供了丰富的拦截器,可以方便地处理表单验证、文件上传等常见需求,同时支持多种结果类型和模板技术,如FreeMarker、JSP等。 **Hibernate3** 是一个强大的ORM框架,它简化了Java应用程序与数据库之间的交互...

    Spring 系列 jar 包

    它允许开发者定义数据验证规则,应用于实体属性,可以在Spring MVC中与表单绑定和数据绑定过程结合,确保输入数据的正确性。 8. **Spring JDBC**: 提供了对JDBC的抽象层,简化了数据库操作,比如模板类和数据源管理...

    Spring live中文版

    - **表单验证**:使用 Commons Validator 添加前端和后端的数据验证。 #### 六、BeanFactory 及其工作原理 - **Bean 生命周期**:从创建到销毁的整个过程中,Spring 会调用特定的方法来管理 bean 的状态。 - **反转...

Global site tag (gtag.js) - Google Analytics