开发者社区 问答 正文

VO中,部分参数校验失败

@Pattern(regexp = "0|1|2")
    private Integer comp;

校验不能通过,经检验,只用于String类型:好神奇;求源码分析

展开
收起
皮卡丘的二爷 2020-06-05 16:58:26 802 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 程序中添加这类校验性异常,统一异常处理: @RestControllerAdvice @Slf4j public class ExceptionAdvice { @ExceptionHandler(Exception.class) public Response<?> handleException(Exception e) { return Response.error( e.getMessage()); } /** * 拦截参数校验异常 */ @ExceptionHandler(MethodArgumentNotValidException.class) public Response<?> handleMethodArgumentNotValidException(MethodArgumentNotValidException methodArgumentNotValidException) { StringBuilder errorMessage=new StringBuilder(); List objectErrors=methodArgumentNotValidException.getBindingResult().getAllErrors(); if (!CollectionUtils.isEmpty(objectErrors)) { for (int i = 0; i < objectErrors.size(); i++) { if (i == 0) { errorMessage.append(objectErrors.get(i).getDefaultMessage()); } else { errorMessage.append(","); errorMessage.append(objectErrors.get(i).getDefaultMessage()); } } }else { errorMessage.append("MethodArgumentNotValidException occured."); } return Response.error("400", errorMessage.toString(),null); } }

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 4.前台请求层处理: @RequestMapping(value = "/goodsAdd",method = RequestMethod.POST) @ExceptionHandler(MethodArgumentNotValidException.class) public void addGoods(@RequestHeader String userCode,@RequestBody @Valid Goods goods) { goodsService.addGoods(goods); }

    2021-02-08 17:56:19 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等