[Seasar-user:9943] [Teeda]@PageScopeによる値引継ぎについて
橋本 昇
[E-MAIL ADDRESS DELETED]
2007年 8月 16日 (木) 16:31:21 JST
橋本と申します。
Teedaの@PageScopeの動作について質問させてください。
下記のようなPageクラスがあるとします。
※getter/setterは省略しています
public class TestPage {
@PageScope
private String pageProp;
@SubapplicationScope
private String subapplicationProp;
public Class initialize() {
pageProp = "pagePropValue";
subapplicationProp = "subapplicationPropValue";
return null;
}
public Class doUpdate() {
return null;
}
public Class prerender() {
System.out.println("pageProp=" + pageProp);
System.out.println("subapplicationProp=" + subapplicationProp);
return null;
}
}
対応するHTMLは大まかに下記の様になっているとします。
<form id="Form">
<input type="submit" id="doUpdate"/>
</form>
まず、はじめに表示した時点ではprerenderのログは下記の用に表示されます。
pageProp=pagePropValue
subapplicationProp=subapplicationPropValue
画面が表示された時点でsubmitボタンを押下します。
すると、ログは下記の様に出力されます。
pageProp=null
subapplicationProp=subapplicationPropValue
私が想定していたのはpageProp=pagePropValueなのですが、どうやら@PageScope
を指定したフィールドは値が復旧していないようです。
セッションの中を見ると、Teeda的にはpagePropの値は保管しているようです。
※勿論subapplicationPropの値も保持しています
私の理解ではPageScopeを指定すると少なくともポストバックを行っている間は
値が戻るものだと思っていました。
同一画面の範囲内で値を引き継ぐというイメージです。
@PageScope指定時の挙動として上記の状態は意図どおりでしょうか?
この挙動が正しいとするならば@PageScopeの指定はどのような効果をもたらすの
でしょうか?
Teedaのバージョンは1.0.10です。
どなたかご教授よろしくお願いします。
Seasar-user メーリングリストの案内