有没有办法阻止Spring将标记为@ModelAttribute的方法的引用数据添加到重定向的URL中?

时间:2011-01-10 22:06:27

标签: spring-mvc

我目前正在我的控制器中使用@ModelAttribute注释来向我的页面和表单添加引用数据,即:

@ModelAttribute("someValue")
public String getSomeValue() {
   return someValue;
}

这很有效,直到我开始使用控制器的重定向。标有@ModelAttribute的方法中的所有值都显示在URL中,即:

http://somedomain.com/page?someValue=value

是否有设置关闭此功能?或者有一个简单的解决方法吗?

我读到了一些关于创建拦截器以将参考数据添加到模型中的内容,但这似乎是错误的:

http://developingdeveloper.wordpress.com/2008/02/28/common-reference-data-in-spring-mvc/

2 个答案:

答案 0 :(得分:3)

我发现RedirectView对象上有一个名为setExposeModelAttributes的setter。如果将其设置为false,则不会将属性抛入URL中。

我在春季源论坛上得到了PUK_999的帮助:

http://forum.springsource.org/showpost.php?p=274948&postcount=6

答案 1 :(得分:0)

@ModelAttribute这是{{1}}的故意和具体行为,即使它确实感到错误和破裂。

拦截器实际上是最简单的方法之一。