java – Spring控制器没有调用@Valid
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Spring控制器没有调用@Valid,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2269字,纯文字阅读大概需要4分钟。
内容图文
我知道这个问题在这里被问过几次,但我找不到答案来帮助我
我试图在我的控制器上使用@Valid注释,但是spring似乎并不想对它做任何事情
这是我在做的事情:
版本:
<org.springframework-version>4.0.5.RELEASE</org.springframework-version>
<hibernate-annotations-version>3.5.6-Final</hibernate-annotations-version>
我想要验证的类:
public class myclass{
private int id;
@NotEmpty
@Min(20)
private String title;
@NotEmpty
private String description;
}
控制器签名:
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public ServerResponse<Integer> addSomeClass(@RequestBody @Valid myclass mymy) {
我也配置了
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {
private @Value("${web.maxFileUploadSize}") int MAX_FILE_UPLOAD_SIZE;
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
registry.addResourceHandler("/deployed/**").addResourceLocations("/deployed/");
}
@Bean
public CommonsMultipartResolver multipartResolver() {
CommonsMultipartResolver ret = new CommonsMultipartResolver();
ret.setMaxUploadSize(MAX_FILE_UPLOAD_SIZE);
return ret;
}
@Bean
public RequestMappingHandlerAdapter requestMappingHandlerAdapter(){
RequestMappingHandlerAdapter requestMappingHandlerAdapter = new RequestMappingHandlerAdapter();
List<HttpMessageConverter<?>> messageConverters = new LinkedList<>();
messageConverters.add(new MappingJackson2HttpMessageConverter());
requestMappingHandlerAdapter.setMessageConverters(messageConverters);
return requestMappingHandlerAdapter;
}
@Bean(name ="validator")
public LocalValidatorFactoryBean validator(){
return new LocalValidatorFactoryBean();
}
}
当我发送这个JSON时:
{"title":"","description":""}
什么都没发生,一切都在继
似乎无法找到答案.
UPDATE
我已经:
<hibernate-validator-version>4.3.1.Final</hibernate-validator-version>
所以我把它更新为:5.1.1,这就是我得到的
06006
所以我更新了我的validation-api到1.1.0.Final没有例外,但仍然没有验证
解决方法:
尝试并在你的控制器签名上完全传递BindingResult(myclass mymy),就像这样
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public ServerResponse<Integer> addSomeClass(@RequestBody @Valid myclass mymy, BindingResult result) {
这通常适合我,希望它也适合你…….!
内容总结
以上是互联网集市为您收集整理的java – Spring控制器没有调用@Valid全部内容,希望文章能够帮你解决java – Spring控制器没有调用@Valid所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。