POST后保存参数的Spring重定向

时间:2013-10-21 06:58:19

标签: spring spring-mvc

我正在使用spring 3.2.4,我有一个简单的控制器,它接受一个参数,设置它,并重定向页面。出于某种原因,即使重定向后它也会保留参数。即页面以“/”开头并以“/?globalMessage = hereforever”结尾,我已经尝试清除modelMap,但这不起作用。我可能会误解一些问题。我也将模型添加到HandlerInterceptor中的postHandle。

@RequestMapping(value = "globalMessage", method = RequestMethod.POST)
public String setGlobalMessage(@RequestParam String globalMessage) {
    globalProperties.setProperty("globalMessage", globalMessage);

    return "redirect:/";
}

这是前面的

中的jsp代码
<form method="post" action="/globalMessage">
    <input name="globalMessage" type="text" name="message"/>
    <input id="submitbutton" type="submit"/>
</form>

1 个答案:

答案 0 :(得分:3)

Spring的重定向视图会自动将模型属性公开为URL参数:https://jira.springsource.org/browse/SPR-1294。如果模型中某处设置了globalMessage,则会将其附加到重定向网址。

你可以告诉Spring不要使用setExposeModelAttributes方法执行此操作。

@RequestMapping(value = "globalMessage", method = RequestMethod.POST)
public String setGlobalMessage(@RequestParam String globalMessage) {
    globalProperties.setProperty("globalMessage", globalMessage);

    RedirectView redirect = new RedirectView("/");
    redirect.setExposeModelAttributes(false);
    return redirect;
}