2

奇妙な問題に直面しています。私のログアウトコードは次のとおりです:

@RequestMapping(value = "/logout", method = RequestMethod.GET)
    public String thanks(HttpSession session) {
        session.removeAttribute("parentEmail");
        session.invalidate();
        return "redirect:parent-login";
    }

しかし、ログアウト後、次のリンクを取得します/logout?email=xyz@xyz.com

そのため、戻るボタンを押すと、最後にアクセスしたページに戻り、データを更新できます。セッション属性として設定した電子メール。

この URL を取得する理由を教えてください。

4

1 に答える 1

1

デフォルトでは、すべてのモデル属性は、リダイレクト URL で URI テンプレート変数として公開されていると見なされます。残りの属性のうち、プリミティブ型またはプリミティブ型のコレクション/配列である属性は、クエリ パラメータとして自動的に追加されます。

redirectAttributes.addAttribute() を使用して、必要なクエリ パラメータを追加します。また、そのオブジェクトを null model.addAttribute("parentLogin",null); に設定して、ModelMap からの認証関連オブジェクトを無効にする必要があります。

したがって、メソッドは次のようになります。

    @RequestMapping(value = "/logout", method = RequestMethod.GET)
public String thanks(Model model,RedirectAttributes redirectAttributes,HttpSession session) {
 redirectAttributes.addAttribute("logout", "1234");
 model.addAttribute("parentLogin",null);
 session.removeAttribute("parentEmail");
 session.invalidate();
 return "redirect:parent-login";
}
于 2012-05-09T13:52:56.447 に答える