开发者社区> 问答> 正文

VO中,部分参数校验失败

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

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

展开
收起
皮卡丘的二爷 2020-06-05 16:58:26 784 0
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
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载