@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
所以当我在上次访问的页面上再次按下按钮时,可以更新数据。 我已将电子邮件设置为会话属性。
有人可以告诉我为什么要获取此网址。
答案 0 :(得分:1)
默认情况下,所有模型属性都被视为URI 重定向URL中的模板变量。剩下的属性 那些是原始类型或集合/原始数组 类型会自动附加为查询参数。
使用redirectAttributes.addAttribute()附加所需的查询参数。 您还应该通过将该对象设置为null来使ModelMap中的任何与身份验证相关的对象无效 model.addAttribute( “parentLogin”,NULL);
所以你的方法应该是这样的:
@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";
}