简体   繁体   English

SessionAttributes不能与spring boot一起使用

[英]SessionAttributes not working with spring boot

I have face problem to keep email a live data cross pages via session I have try this 我有问题通过会话保持电子邮件实时数据跨页我试过这个

@Controller
@RequestMapping(value = "/sec")
@SessionAttributes("reset_user_email")
public class SecurityController {}
  1. Receive variable from "/sec/forget" 从“/ 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. Using reset_user_email in "/sec/forget/user/a" 在“/ 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); 

Console Output : 控制台输出:

a GET user mail = 

what is messing to keep my reset_user_email available everywhere in application ? 什么是让我的reset_user_email在应用程序中随处可用?

Thank you in advance 先感谢您

You can manipulate the session attributes by: 您可以通过以下方式操纵会话属性:

  1. including the a HttpSession in the method definition: 包括方法定义中的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. Use WebUtils class: 使用WebUtils类:

     @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"); } 

Instead of ModelAndView, Try java.util.Map, try to put session values in Map, by map.put("your session name",value); 尝试java.util.Map,而不是ModelAndView,尝试通过map.put("your session name",value);值放在Map中map.put("your session name",value);

and try to get a value by String email=(String)map.get("your session name"); 并尝试通过String email=(String)map.get("your session name");获取一个值String email=(String)map.get("your session name");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM