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

永守正樹 [E-MAIL ADDRESS DELETED]
2010年 3月 17日 (水) 10:28:49 JST


いつもお世話になっております。

永守と申します。

現在、案件に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 メーリングリストの案内