关于@RequestBody默认异常信息的封装

public JsonResult add(@RequestBody User user){
    // 当user未传递的情况下,默认返回异常:Required request body is missing;
    // 如何针对这个异常信息能做一次封装,这样的话,前端那边能更直观的清楚具体错误信息;
}

目前处理方式如下:

public JsonResult add(@RequestBody(required = false) User user){
    if(user == null){
        // 把 RequestBody 设置未非必传递,再由此处判断,返回自定义的错误信息给前端;
        // 想寻求合适或优雅的处理方式;
    }
}
慕雪6442864
浏览 516回答 2
2回答

九州编程

使用@ControllerAdvice做统一异常处理

拉风的咖菲猫

Spring提供了一套自己的参数验证机制验证类 public class UserValidator implements Validator { @Override public boolean supports(Class<?> aClass) { return aClass.equals(User.class); } @Override public void validate(Object o, Errors errors) { if (o == null) { errors.rejectValue("", null, "用户不能为空"); } } } UserController public class UserController { /** * 调用控制器前先执行这个方法 对@Valid参数进行验证 */ @InitBinder public void initBinder(WebDataBinder binder) { // 绑定验证器 binder.setValidator(new UserValidator()); } public JsonResult add(@Valid @RequestBody User user, Errors errors) { if (errors.hasErrors()) { //返回错误信息 } //balabala } } 再具体的用法搜索一下就是了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java