[Seasar-user:8682] Re: DTOをセッションに乗せたいのですが

fujihara [E-MAIL ADDRESS DELETED]
2007年 6月 26日 (火) 16:00:08 JST


返信ありがとうございます。
kijimunaのエラーは取れました。

> PageクラスにHogeDtoをDIできるように
> setterを準備してください.
とはPageクラスに

 private HttpSession sessionScope;

 public void setSessionScope(HttpSession sessionScope) {
  this.sessionScope = sessionScope;
 }

この部分を追加することですか?

申し訳ありませんが宜しくお願いします。

----- Original Message ----- 
From: "Shinpei Ohtani" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Tuesday, June 26, 2007 3:15 PM
Subject: [Seasar-user:8679] Re:DTOをセッションに乗せたいのですが


> 大谷です.
>
> PageクラスにHogeDtoをDIできるように
> setterを準備してください.
>
> また、SmartDeploy構成であれば、diconに
> 設定する必要はありません.
> (package jp.roaso.dtoを見る限りだと適切な場所に配置している
> ので、SmartDeployが使えるように思います.)
>
>
>> [XML]Attribute "instance" with value "session" must have a value from the
>> list "singleton prototype outer ".
>> というエラーをkijimunaが出してしまいます。
>
> DOCTYPE宣言が古いんだと思います.
> 下記の最新のものを使ってみてください.
> あわせてKijimunaも最新にしておくことをお奨めします.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
> "http://www.seasar.org/dtd/components24.dtd">
>
>
>
> 07/06/26 に 冨士原 孝之<[E-MAIL ADDRESS DELETED]> さんは書きました:
>> はじめましてfujiharaといいます。
>>
>> Seasar2を使い始めて2週間です。
>> Teeda+S2DAOを使用して社内向けのWebアプリを
>> 作成しようとしてますが。
>>
>> コンポーネントをセッションに置くことができません。
>> メーリングリストを見ると@Component(instance = InstanceType.SESSION)
>> だけがかいてあったのでそのとおりにしてみましたがうまくいきません。
>>
>> diconファイルを使用して以下のように設定すると
>> <?xml version="1.0" encoding="Shift_JIS"?>
>> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
>> "http://www.seasar.org/dtd/components.dtd">
>> <components>
>>  <component name="hogeSession" instance="session"
>> class="jp.roaso.dto.HogeDto">
>>  </component>
>> </components>
>>
>> [XML]Attribute "instance" with value "session" must have a value from the
>> list "singleton prototype outer ".
>> というエラーをkijimunaが出してしまいます。
>>
>> 以下がDTOです。
>>
>> package jp.roaso.dto;
>>
>> import java.io.Serializable;
>>
>> import org.seasar.framework.container.annotation.tiger.Component;
>> import org.seasar.framework.container.annotation.tiger.InstanceType;
>>
>> @Component(instance = InstanceType.SESSION)
>> public class HogeDto implements Serializable {
>>
>>  private static final long serialVersionUID = 1L;
>>
>>  private String userId;  // ユーザID
>>
>>  /**
>>   * @param なし
>>   * @return ユーザID
>>   */
>>  public String getUserId() {
>>   return userId;
>>  }
>>
>>  /**
>>   * @param userId
>>   * @return なし
>>   */
>>  public void setUserId(String userId) {
>>   this.userId = userId;
>>  }
>>
>> }
>>
>> このDTOをPageクラスで使用する場合、どのようにするのでしょうか?
>>
>> そのまま
>> HogeDto hoge;
>> hoge.setUserId("aaa");
>>
>> とかやるとNullPointerExceptionです。当たり前??
>>
>> diconファイル経由で
>> S2Container container = 
>> S2ContainerFactory.create(jp/roaso/dto/hoge.dicon);
>> HogeDto hoge = (HogeDto) container.getComponent(HogeDto.class);
>> やってもセッションには格納されていないみたいです。初心者で幼稚な質問ですが行き詰っています。お忙しいところ申し訳ありませんが宜しくお願いします。-----------------------------------
>>  コンピュータメネージメント株式会社
>>  fujihara / [E-MAIL ADDRESS DELETED]
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
>
>
> -- 
> =============================
> Shinpei Ohtani
> [E-MAIL ADDRESS DELETED]
> =============================
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 



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