rus*_*ush 5 java validation spring spring-mvc
我使用 \xe3\x80\x8cpostman\xe3\x80\x8d 发送“application/json”类型的 POST 请求,将参数“phone”设置为空字符串,通常它应该打印注释“@NotEmpty”的错误,但是,它没有打印任何内容并且运行良好。
\n\n控制器:
\n\n @RequestMapping(value = "verify_smscode", method = RequestMethod.POST)\n @ResponseBody\n public ResponseDto verifySmsCode(HttpServletRequest request,\n @Valid @RequestBody VerifySmsCodeParam params, Errors errors) {\n if(errors.hasErrors()) {\n System.out.println("error");\n }\n\n boolean success = userService.verifySmsCode(params.getPhone(), params.getSmsCode());\n\n Map<String, Object> result = new HashMap<>();\n result.put("status", success);\n return new ResponseDto(result);\n }\nRun Code Online (Sandbox Code Playgroud)\n\n模型:
\n\n@Data\n@NoArgsConstructor\npublic class VerifySmsCodeParam {\n\n @NotEmpty //import org.hibernate.validator.constraints.NotEmpty;\n private String phone;\n\n @NotEmpty\n private String smsCode;\n}\nRun Code Online (Sandbox Code Playgroud)\n\nSpringMvc配置:
\n\n@Configuration\n@ComponentScan(basePackages="com.shit.voiceshare")\n@EnableWebMvc\npublic class SpringMvcConfig extends WebMvcConfigurerAdapter {\n @Override\n public Validator getValidator() {\n LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();\n localValidatorFactoryBean.setProviderClass(HibernateValidator.class);\n return localValidatorFactoryBean;\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
嗯,我还是春天的新人。但这是针对我的情况的答案,如果它适合您的话。
为了使@Valid工作,你应该包含两个包javaxvalidation-api和hibernate-validator,但我只包含validation-api。
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.1.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6913 次 |
| 最近记录: |