[Seasar-user:19505] Re: 【Teeda】セッションスコープにDTOを格納・利用

永守正樹 [E-MAIL ADDRESS DELETED]
2010年 3月 17日 (水) 14:27:50 JST


自己解決しました。

doLogin()で
sessionScope.setAttribute("nid001taDto", nid001taDto);

を忘れてました。
初歩的ですね。

(2010/03/17 10:28), 永守正樹 wrote:
> いつもお世話になっております。
>
> 永守と申します。
>
> 現在、案件にTeedaを使用しております。
>
> セッションにユーザー情報を入れ、各画面で利用したいと考えております。
> またインターセプターによるログインチェックを入れております。
> 環境は、SmartDeployです。
>
> 【Nid001taDto】
> @Component(instance = InstanceType.SESSION)
> public class Nid001taDto implements Serializable {
>
> 	private static final long serialVersionUID = 1L;
>
> 	public String d001User;
>
> 	public String d001Password;
>
> 	public String d001MkCd;
>
> }
>
>
> 【LoginPage】(抜粋)
>
> //ユーザー情報用
> 	public Nid001taDao nid001taDao;
> 	public Nid001taDto nid001taDto;
>
> 		 * ログインボタン押下時
> 		 * @return
> 		 */
> 		public Class<?> doLogin() {
>
> 			//ユーザー情報を格納
> 			nid001taDto=nid001taDao.selectByD001User(d001User);
>
> 			//list.html
> 			return ListPage.class;
> 		}
>
>
> 【LoginAuthInterceptor】(抜粋)
>
> public Object invoke(MethodInvocation invocation) throws Throwable {
>
> //Seasar2で管理しているオブジェクト経由でセッションを取得
> Map<String, Object> sessionScope =
> SingletonS2Container.getComponent("sessionScope");
>
> //ユーザ情報をセッションから取得
> Nid001taDto dto = (Nid001taDto) sessionScope.get("nid001taDto");
>
> //ユーザー情報(Session)を保持していない場合
> //強制的にLoginPageへ遷移させる。
> if(dto == null){
> return LoginPage.class;
> }
> return invocation.proceed();
> }
>
> ・RequestDumpFilterの該当ログ
> [session]nid001taDto=[E-MAIL ADDRESS DELETED]
>
> デバックしたところ、Dtoは、Sessionに乗っているぽいのですが、中身がNullの
> ままです。
> 値がうまく渡せていないのでしょうか?
> 解決策をご教授下さい。
>
> 宜しくお願い致します。
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>   


Seasar-user メーリングリストの案内