1

我使用的是 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>
4

1 回答 1

3

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

您可以使用该方法告诉 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;
}
于 2013-10-21T07:48:32.423 回答