spring使用中遇到的问题

为什么80%的码农都做不了架构师?>>>   hot3.png

1.控制器绑定链接的函数,里面的参数列表如果要用到BindResult(用于验证器验证后获取验证结果),这个变量必须紧跟在被验证对象(command)之后,否则在进行验证时会抛出异常。


2.如果在视图解析器(我们用的是velocity)中设置了属性exposeSessionAttributes为true之后,所有的session中的变量都会在传给视图(velocity模板)时被合并到model中。这时如果在控制器中使用了@sessionAttributes注解(会把session中指定的变量存到model中),在最后合并model的时候会报Cannot expose session attribute 'xxx' because of an existing model object of the same name异常。查看了AbstractTemplateView.java文件后,发现spring在合并的时候还判断了allowSessionOverride这个属性,如果为false,就会抛出上面提到的异常。所以这种情况下,还要在配置文件的viewResolver中添加allowSessionOverride属性,value为true,这样即使遇到重复的值,也会直接使用Map中的put方法将旧值覆盖。

转载于:https://my.oschina.net/sfilyh/blog/161162

你可能感兴趣的:(spring使用中遇到的问题)