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 に答える