2012-05-09 65 views
1

即,我只想要一个很好的方式从我的模型(主要是一些SessionAttributes)中检索现有的对象。如何防止@ModelAttribute从请求参数创建命令对象?

我不想要创建新的对象,我特别不希望对象从请求参数实例化并放入模型中。这听起来像是我的后门。

如果在模型中没有匹配的参数,则可以抛出异常也很好。

回答

0

我通过阅读源代码得到了答案。根据org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveModelAttribute的实现,如果使用@SessionAttributes注解将模型属性的名称声明为会话属性,则不会创建新的绑定对象。

如果该属性在会话中不存在,则会抛出异常。

因此,以这种方式绑定会话属性是相对安全的。