[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 メーリングリストの案内