前提・実現したいこと
いつもお世話になっております。
複数Controllerでsessionに保存した値の取得をしたいです。
現在、sessionスコープのbeanを使用してsessionの持ち回りをしています。以下を参考にさせていただきました。
4.4.2.2.1. sessionスコープのBean定義
発生している問題・エラーメッセージ
同じController内では値が取得できますが、他のControllerで取得をするとnullが返ってきます。
該当のソースコード(Sample)
簡単に記載しますが、分かりづらければ修正いたしますので、仰ってください。
Java
1 2// sessionスコープのbean 3 4@Component 5@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS) 6public class SessionBean implements Serializable { 7 8 private static final long serialVersionUID = 1L; 9 10 private String loginCode; 11 12 public void setLoginCode(String loginCode) { 13 this.loginCode = loginCode; 14 } 15 16 public String getLoginCode() { 17 return loginCode; 18 } 19}
Java
1 2// コントローラA 3 4@Controller 5public class LoginController { 6 7 @Autowired 8 private SessionBean session; 9 10 @RequestMapping(value = "menu", method = POST) 11 public String testA(){ 12 session.setLoginCode(loginForm.getCode()); 13 14 // ここでSystem.out.println(session.getLoginCode())を実行すると、正しく値が出力される 15 16 return "menu/menu"; 17 } 18}
Java
1 2// コントローラB 3 4@Controller 5public class MenuController { 6 7 @Autowired 8 private SessionBean session; 9 10 @RequestMapping(value = "input", method = POST) 11 public String okButtonPush(){ 12 System.out.println(session.getLoginCode()); ←nullが出力されてしまう 13 } 14 15 return "ok"; 16}
<mvc-config追記>
<context:component-scan base-package="jp.co.daicho" /> <mvc:annotation-driven />
試したこと
1.上記サイトだけでなく他の方のサイトいくつかも参考に見直しを行いました
2.sessionBeanはパッケージを分けているので、同じパッケージに移してみました
3.アクセス範囲を、いったん全てprivate⇒publicにしてみました
(全てダメでした;;;)
補足情報(FW/ツールのバージョンなど)
Java8
STS 3.9.6
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー