[Seasar-user:19507] Re: 【Teeda】セッションスコープにDTOを格納・利用
Hidemasa Aoki
[E-MAIL ADDRESS DELETED]
2010年 3月 17日 (水) 14:50:22 JST
ITプランナーズの青木と申します。
突然、失礼します。
解決されたのならよいですが、ちょっと違うかなと思うので。
セッションスコープにしておけば、とくに明示しなくても、セッションにいれてくれ
ます。
取得するときは、われわれは、
this.operatorDto = (OperatorDto) SingletonS2ContainerFactory
.getContainer().getComponent(OperatorDto.class);
のようにしています。
> //Seasar2で管理しているオブジェクト経由でセッションを取得
> Map<String, Object> sessionScope =
> SingletonS2Container.getComponent("sessionScope");
>
> //ユーザ情報をセッションから取得
> Nid001taDto dto = (Nid001taDto) sessionScope.get("nid001taDto");
のように、遠回りな取得の仕方をしているのがいけないのだと思います。
-----Original Message-----
From: [E-MAIL ADDRESS DELETED]
[mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of 永守正樹
Sent: Wednesday, March 17, 2010 2:28 PM
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:19505] Re: 【Teeda】セッションスコープにDTOを格納・利
用
自己解決しました。
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 mailing list
[E-MAIL ADDRESS DELETED]
https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内