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

Spring MVC Validator 验证

 
阅读更多

   在使用Spring MVC时,使用了它服务端的验证Validator 验证。遇到了一个问题,在这里记录下。

  

   问题:由于在一个Controller中存在多个可供WEB端使用的方法,根据方法的不同调用不同的验证Validator 进行对参数的验证,例子如下所示:

  方法一简单案例:

 

public String amethod(@ModelAttribute("matObjecta")MatObjectA  matObjecta, BindingResult bindingResult){
   ......
}

@InitBinder("matObjecta")
public void initBinder(DataBinder binder) {
    binder.setValidator(new MatobjectAvalidator());
}

 

 

   方法二简单案例:

  

public String bmethod(@ModelAttribute("matObjectb")MatObjectB  matObjectb, BindingResult bindingResult){
   ......
}
@InitBinder("matObjectb")
public void initBinder(DataBinder binder) {
    binder.setValidator(new MatobjectBvalidator());
}

 

一、注解说明:

    @ModelAttribute("") 注解用于指定的参数的名称,如果不指定默认是对象名称的首字母小写形式。

    @InitBinder("")注解的参数为@ModelAttribute("") 设置的参数名称时,表示此方法只会在存在@ModelAttribute("") 指定名称相同的参数时,在方法体调用之前执行。如果@InitBinder未设置任何参数时将会在Controller下的所有方法体调用之前都会默认执行,并将反馈结果存在BindingResult 中返回。

二、验证方法书写方式

public class MatobjectAvalidator implements Validator {
    @Override
    public boolean supports(Class<?> clazz) {
        return MatObjectA.class.equals(clazz);
    }
    @Override
    public void validate(Object target, Errors errors) {
         MatObjectA   matObjectA   = (MatObjectA ) target;
   //添加错误信息 会将错误信息反馈到 BindingResult 中
            errors.rejectValue("CODE","VALUE");
    }
}

 

 

三、读取错误信息方式:

   可以使用以下方法读取BindingResult 中的错误信息。

  

for (ObjectError error : bindingResult.getAllErrors()) {

                 System.out.println(error.getCode());
  }

  *注:BindingResult 必须定义为Controller中方法的最后 一个参数。

 

 

 

分享到:
评论

相关推荐

    spring_validator验证

    Spring Validator验证是Spring MVC框架中的一个关键特性,用于在服务器端对用户输入数据进行校验。在Spring MVC 3.0版本中,引入了注解驱动的验证方式,极大地简化了验证逻辑,使得开发者能够更加方便地处理表单数据...

    最全最经典spring-mvc教程

    对于验证,Spring MVC提供了BindingResult和Validator接口,用于校验模型数据的正确性。 另外,Spring MVC与Spring框架的其他组件无缝集成,如Spring AOP(面向切面编程)用于实现日志、事务管理等功能,Spring ...

    Spring.MVC-A.Tutorial-Spring.MVC学习指南 高清可复制版PDF

    除此之外,Spring MVC还支持数据绑定、验证、本地化、主题、异常处理等功能。例如,使用@ModelAttribute注解可以将请求参数绑定到Controller方法的参数上,@Valid用于进行数据验证,Validator接口可以自定义验证逻辑...

    Mastering Spring MVC 4(2015.09)源码

    总的来说,"Mastering Spring MVC 4(2015.09)源码"提供了深入学习Spring MVC的机会,你可以通过阅读和分析源码来了解如何配置DispatcherServlet、怎样编写控制器、如何进行数据绑定与验证,以及如何利用拦截器等特性...

    Spring MVC 基础实例源码01

    11. **Validation**:Spring提供了数据验证机制,可以通过`@Valid`注解和Validator接口实现对表单数据的校验。 12. **Interceptor**:拦截器,允许在请求处理前后执行自定义逻辑,如日志记录、权限检查等。 13. **...

    Spring MVC简单例子

    Spring MVC可以通过自定义Validator或使用JSR-303/JSR-349 Bean Validation进行验证。同时,安全方面需要考虑防止SQL注入和XSS攻击。 7. **视图解析器**:设置ViewResolver,如InternalResourceViewResolver,用来...

    spring MVC_快速入门

    此外,@Valid用于验证模型数据,配合Validator接口实现自定义校验规则。 7. **异常处理** 可以使用@ControllerAdvice和@ExceptionHandler全局处理异常,为整个应用提供统一的错误页面或提示。 8. **拦截器...

    Spring MVC框架的各种依赖包下载

    10. **Validation API和Hibernate Validator**:用于数据验证,可以确保用户输入的有效性。 11. **Thymeleaf或FreeMarker**:作为视图解析引擎,可以将模型数据渲染成HTML页面。Spring MVC默认支持多种视图解析技术...

    resin 支持spring mvc 5.0以上版本 支持Hibernate validation

    要在Resin中启用Hibernate Validation,需要在应用中包含Hibernate Validator库,并在相应的配置文件(如web.xml或Spring配置文件)中配置验证规则。 在Resin-4.0.61压缩包中,包含了Resin服务器的所有必要组件和...

    SixDay-Spring MVC(基于Spring MVC实现后台登陆系统验证)的源代码

    Spring MVC支持使用`@Valid`和自定义Validator实现数据验证。在登录场景中,可以验证用户名和密码是否为空,或者是否满足特定格式。 8. **视图解析** 登录成功后,Controller会返回一个视图名,如"success"。...

    spring mvc服务端表单验证实例

    这包括Spring MVC本身、Bean Validation实现(如Hibernate Validator)、以及可能的视图技术库。 9. **学习资源**: 这个实例是一个很好的学习资源,可以帮助初学者理解如何在实际项目中集成和使用Spring MVC的...

    spring mvc入门示例

    7. **验证**:使用Hibernate Validator或Spring的Validator接口,可以在控制器方法执行前验证模型数据。 8. **异常处理**:通过@ControllerAdvice和@ExceptionHandler注解,可以全局地处理异常,提供统一的错误页面...

    第12章Spring MVC参数绑定的验证

    本章主要探讨的是如何在Spring MVC中实现对请求参数的有效性和正确性进行验证,确保应用的数据安全和业务流程的顺畅。以下将详细讲解各个知识点: 1. **简单数据类型绑定**: 在Spring MVC中,对于如int、String等...

    spring mvc框架需要用到的jar包

    12. **validation-api.jar** 和 **hibernate-validator.jar**:用于执行Bean Validation,提供了数据验证的API和实现,确保输入数据的正确性。 在搭建Spring MVC项目时,根据实际需求,可能还需要添加其他的库,如...

    Servlet JSP Spring MVC初学指南(alin书签).pdf

    7. **数据绑定与表单验证**:Spring MVC如何自动将表单数据绑定到模型对象,以及使用Hibernate Validator进行验证。 8. **异常处理**:配置全局异常处理器,处理应用程序可能出现的各种错误和异常。 9. **RESTful...

    spring mvc案例+配置+原理详解+架包

    5. **数据验证**:使用Hibernate Validator或其他验证框架进行输入验证。 五、Spring MVC 实战案例 1. **Hello World**:创建第一个Spring MVC项目,实现简单的“Hello, World!”展示。 2. **表单提交**:处理POST...

    【面试资料】-(机构内训资料)看透Spring MVC源代码分析与实践.zip

    - 数据绑定和验证,如@ModelAttribute和Validator的使用。 - 异常处理,全局异常处理器GlobalExceptionResolver的设置。 - 性能优化,如开启HTTP缓存、减少视图解析时间等。 5. **面试常见问题** - Spring MVC...

    Spring MVC 教程,快速入门,深入.rar_SpringMVC教程_spring mvc教程_springmvc

    同时,利用@Valid和Validator进行表单验证,保证数据的准确性和完整性。 6. **MVC拦截器**: 拦截器允许在请求处理前后执行自定义逻辑,如权限检查、日志记录等。 7. **异常处理**: 通过@ControllerAdvice和@...

    springmvc数据验证

    Spring MVC 提供了两种主要的数据验证方式:一种是基于JSR 303/349的Bean Validation,另一种是基于Validator接口的自定义验证。 1. **Bean Validation**:这是一个标准的Java Bean数据验证框架,它定义了一组注解...

    spring mvc项目后端源码

    10. **验证**:Spring MVC 结合 `Hibernate Validator` 提供了表单验证功能,可以使用 `@Valid` 和 `BindingResult` 进行校验。 11. **RESTful 风格**:通过 `@RestController` 注解和 HTTP 方法注解(`@GetMapping...

Global site tag (gtag.js) - Google Analytics