【问题标题】:How to use Exceptionhandler annotation after handling binding result annoation处理 bindingresult 注解后如何使用 Exception Handler 注解
【发布时间】:2018-08-01 18:18:32
【问题描述】:

我已经定义了一个控制器类,它使用 jsr 注释 (@valid) 进行验证,并通过 bindingresult 对象处理它的异常,但我希望将它提升到一个新的水平并配置控制器类来处理 contraintviolation 异常如何配置它同一个控制器

@RequestMapping(value="/saveOrUpdatelawyers", method=RequestMethod.POST)
public @ResponseBody  Map<String,Object> getSaved(@Valid Lawyers lawyers,BindingResult result){
    Map<String,Object> map = new HashMap<String,Object>();

    Object obj=new Object();
        if(result.hasErrors())
        {  
            for (Object object : result.getAllErrors()) {
                if(object instanceof FieldError) {
                    FieldError fieldError = (FieldError) object;

                 obj= (fieldError.getDefaultMessage());
                }
            map.put("status","400");
            map.put("message",obj);
            return map;
        }}

        lawyerServices.saveOrUpdatelawyers(lawyers);
        map.put("status","200");
        map.put("message","Your record have been saved successfully");
        return map;

}

【问题讨论】:

    标签: spring hibernate rest spring-mvc spring-boot


    【解决方案1】:

    您需要创建一个扩展运行时异常的自定义 BindingErrorsException 并将您的逻辑放在那里。

    那么你必须有一个具有不同@ExceptionHandler 的@ControllerAdvice 类。

    我确实有一个示例项目可以帮助您入门:https://github.com/dhananjay12/learning-spring-rest/blob/master/error-handling/src/main/java/com/djcodes/spring/rest/errorhandling/EmployeeController.java

    你也可以看看这个答案 - Why Spring MVC does not allow to expose Model or BindingResult to an @ExceptionHandler?

    【讨论】:

      猜你喜欢
      • 2018-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 2023-03-04
      相关资源
      最近更新 更多