SessionAttributes 不适用于 spring 启动

SessionAttributes not working with spring boot

我在通过会话保持电子邮件实时数据跨页时遇到问题我已经尝试过这个

@Controller
@RequestMapping(value = "/sec")
@SessionAttributes("reset_user_email")
public class SecurityController {}
  1. 从“/sec/forget”接收变量

    @RequestMapping(value = "/forget/", method = RequestMethod.POST)
    public ModelAndView forget_page_d(@ModelAttribute User user, ModelAndView mv) 
        throws NoSuchAlgorithmException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException, NoSuchPaddingException, UnsupportedEncodingException, InvalidAlgorithmParameterException
    {
    mv.addObject("user", user);
    
    mv.addObject("reset_user_email", user.getEmail());
    
    //etc
    }
    
  2. 在“/sec/forget/user/a”中使用 reset_user_email

    @RequestMapping(value = "/forget/user/a", method = RequestMethod.GET)
    public ModelAndView forget_page_p(@ModelAttribute String reset_user_email) {
         ModelAndView mv =new ModelAndView();
    
        mv.setViewName("security/forget_renew");
        mv.addObject("user",reset_user_email);
        System.out.println("a GET user mail = " +reset_user_email);
    

控制台输出:

a GET user mail = 

让我的 reset_user_email 在应用程序中随处可用有什么麻烦?

提前致谢

您可以通过以下方式操作会话属性:

  1. 在方法定义中包含一个HttpSession:

    @RequestMapping("/request")
    public ModelAndView getRequest(@ModelAttribute User user, ModelAndView mv, HttpSession session) {
         mv.addObject("reset_user_email", user.getEmail());
    
         session.setAttribute("reset_user_email", user.getEmail());
         String resetUserEmail = session.getAttribute("reset_user_email");         
    }
    
  2. 使用 WebUtils class:

    @RequestMapping("/request")
    public ModelAndView getRequest(@ModelAttribute User user, ModelAndView mv, HttpServletRequest request) {
         mv.addObject("reset_user_email", user.getEmail());
    
         WebUtils.setSessionAttribute(request, "reset_user_email", user.getEmail());
         String resetUserEmail = WebUtils.getSessionAttribute(request, "reset_user_email");  
    }
    

而不是 ModelAndView,尝试 java.util.Map,尝试将会话值放入 M​​ap,通过 map.put("your session name",value);

并尝试通过 String email=(String)map.get("your session name");

获取值