簡體   English   中英

SessionAttributes不能與spring boot一起使用

[英]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類:

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

嘗試java.util.Map,而不是ModelAndView,嘗試通過map.put("your session name",value);值放在Map中map.put("your session name",value);

並嘗試通過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