Spring MVC 与 JSR 303 Validation 的问题

用户昵称13579 2016-12-15 11:15:20
按照官网的说法,非常简单,在Bean类里面某个域添加了相应注解,然后在RequestMapping方法的参数上添加@Valid注解,就可以了。
的确,按后来我的尝试,官网的做法没有任何问题。


public class WTF {
@NotNull
private String name;
...
}
------
@RequestMapping(path = "/test", method = POST)
public String test(@Valid WTF wtf) {
if (errs.hasErrors) { ... }
...
}


但我花了七八个钟,把中文网络上和StackOverflow上所有相关的网页都看过,什么方法都试过了,都还是不行。
无奈之下新建了一个项目,试了一下竟然行了。
最后发现了,上面这种极简的方式,只能对全XML配置的Spring工程有效。而我原来的工程是基于Java注解的,所以不能正常工作。换成XML配置之后,果然能正常工作。

关键是,有什么是
<annotation-driven />
中做了,但
@EnableWebMvc
没有做的?

现在已经找到问题了,我就想问,有没有人在纯Java注解配置下的Spring工程中能使之正常工作。
到底还需要哪些额外的配置,我看官网上,以及StackOverflow上的大神的说法,也就是直接用,不用什么额外的配置的啊。但事实证明,的确要做一些配置。
我自己查到一些说法,要配置Validator的Bean什么的,都已经尝试过,但也不行。非常奇怪。
...全文
123 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
用户昵称13579 2016-12-15
  • 打赏
  • 举报
回复
我又奋斗了几个钟,还把<annotation-driven />跟@EnableWebMvc给研究了遍。。。 终于找到真正的原因了,WTF 好吧,有没有人能解释一下加上下面的个配置之后,JSR 303就不行了,花了将近12个钟才找到原因,整个人都要崩溃了

 	@Bean
	public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
		RequestMappingHandlerAdapter requestMappingHandlerAdapter = 
				new RequestMappingHandlerAdapter();
		requestMappingHandlerAdapter.setSynchronizeOnSession(true);
		return requestMappingHandlerAdapter;

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧