[Seasar-user:9227] [Teeda] セッションに置いたDtoの値がクリアされます

松崎 学 [E-MAIL ADDRESS DELETED]
2007年 7月 18日 (水) 18:52:41 JST


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

ユーザのログイン情報をセッションに持って他の画面から参照したいのですが、
そのDtoを他の画面で参照すると、各フィールドがnullになっています。
フィールドがnullのDtoがDIされているようです。

Hot Deployで開発中で、Teedaのバージョンは1.0.7です。

ソースは以下の様な感じです。
※DtoのGetterとSetterはPageのスーパークラスに記述しています。

・Dto
package hoge.dto;
@Component(instance = InstanceType.SESSION)
public class UserInfoDto implements Serializable {
    /**
     * ログインID
     */
    private String loginId;

    // Getter & Setter省略
}

・Pageのスーパークラス
package hoge.web;
public abstract class AbstractCommonPage {
    /**
     * ログイン情報
     */
    private UserInfoDto userInfoDto;

    // Getter & Setter省略
}

・ログイン画面Pageクラス
package hoge.web.login;
public class LoginPage extends AbstractCommonPage {
    /**
     * ログイン
     */
    public String doLogin() {
        UserInfoDto userInfoDto = getUserInfoDto();
        userInfoDto.setLoginId("hoge");
        return null;
    }
}

・ログイン情報を参照するページ
package hoge.web.hoge;
public class HogePage extends AbstractCommonPage {
    /**
     * initialize
     */
    public String initialize() {
        // ★★★DtoのloginIdがnullになっている
        System.out.println(getUserInfoDto().getLoginId());
        return null;
    }
}




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