天天看點

spring mvc 使用@Valid表單驗證的問題

1.無法使用@NotBlank,@Max注解

pom.xml依賴更新一下

<dependency>
      <groupId>javax.validation</groupId>
      <artifactId>validation-api</artifactId>
      <version>2.0.1.Final</version>
    </dependency>
           

[email protected]無法驗證問題

@Valid需要和Error類型連用,并且順序不能改變,可以直接使用BindingResult,BindingResult繼承了Error

@ApiOperation(value = "擷取公告接口", notes = "擷取公告", code = 200, produces = "application/json")
    @RequestMapping(value = "/getnoticet",method= RequestMethod.POST,produces="application/json;charset=UTF-8")//url
    public Result<List<NoticeResponse>>getnotice(@Valid NoticeRequest noticeRequest, BindingResult result){
        System.out.println(result);
        if (result.hasErrors()){
            for (ObjectError error : result.getAllErrors()) {
                return Result.<List<NoticeResponse>>builder().fail().code(500).message(error.getDefaultMessage()).build();
            }
        }
        return noticetService.getnotice(noticeRequest);
    }
           

另外,檢查一下依賴

<dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-validator</artifactId>
      <version>5.1.1.Final</version>
    </dependency>
           

hibernate-validator是為驗證提供實作方法的,沒有hibernate-validator就無法捕獲

繼續閱讀