2017-07-13 7 views
0

属性こんにちは、私はセッションの問題を持っているSpring MVCのセッションは

属性私がきた2コントローラクラス

ファーストクラス(ユーザー)

@Controller 
@RequestMapping("users") 
@SessionAttributes("activeuser") 
public class UserController { 

    .... 

    @RequestMapping(value = "/login", method = RequestMethod.POST) 
    public String loginUser(HttpServletRequest request,Model model, @ModelAttribute("userlogininfo") User loginuser, 
      BindingResult result, SessionStatus status) { 
     User activeuser = userService.checkuserlogin(loginuser.getUsername(), loginuser.getPassword()); 

     if (activeuser!=null) { 
      request.getSession().setAttribute("activeuser", activeuser); 
      return "redirect:/home"; 
     } else 
      return "redirect:/index"; 


    } 

セカンドクラス(銀行)

@Controller 
@RequestMapping("banka") 
@SessionAttributes("activeuser") 
public class BankController { 
.... 
    @RequestMapping(value = "/save", method = RequestMethod.POST) 
    public String saveBanka(HttpServletRequest request, @ModelAttribute("banka") Banka banka, BindingResult result, 
      SessionStatus status) { 

     User user = (User) request.getSession().getAttribute("activeuser"); 

     banka.setUser(user); 
     bankService.insert(banka); 
     return "redirect:/home"; 
    } 


} 

2番目のクラスは、 "(User)request.getSession()。getAttribute(" activeuser ")"

ご協力いただきありがとうございます。

+1

BankControllerが/ saveメソッドを受け取ったときにセッションがアクティブであるとすると、通常はセッションから「activeuser」を取得する必要があります。 @SessionAttributesで定義された属性を使用するには、 public String saveBanka(... @ ModelAttribute( "activeuser")ユーザ)を使用してください。セッション属性を取得する必要があります。 –

+0

セッションオブジェクトがシリアライズ可能であることを確認してください。 – fg78nc

答えて

1

は、(代わりにrequest.getSession().setAttribute("activeuser", activeuser);の)モデルに

model.addAttribute("activeuser", activeuser); 

を自分の属性を追加してくださいactiveuserが直列化であることを確認してください。

+0

OPはセッションを使用していますが、リクエストではありません。 – tsolakp

+0

私は、リダイレクト:プレフィックスは302リダイレクトhttpレスポンスを生成し、セッションが作成されると考えているので、セッション属性をリダイレクトされたハンドラに取得するとセッション属性を取得する必要があります。 –

+0

@tsolakpリクエスト 'request.getSession()。setAttribute(" activeuser "、activeuser);' リクエストはリダイレクト後に無効になり、生き残りません。 – fg78nc

関連する問題