-
Type: Task
-
Resolution: Fixed
-
Priority: Major
-
Affects Version/s: None
-
Component/s: None
-
None
Seasar-user:10243
いくつか気がついた点があります。
質問の前提コードは下記の通りです。
public class TestPage {
@PageScope
public String pageField;
@SubapplicationScope
public String subAppField;
public Class initialize() {
pageField = "pageField";
subAppField = "subAppField";
return null;
}
public Class prerender() {
System.out.println("prerender pageFiled=" + pageField);
System.out.println("prerender subAppField=" + subAppField);
return null;
}
public void doUpdate() {
System.out.println("doUpdate pageFiled=" + pageField);
System.out.println("doUpdate subAppField=" + subAppField);
}
}
<form id="Form">
<input type="submit" id="doUpdate"/>
</form>
上記のコードで
1.
とりあえず画面を表示する。
ログとして下記の表示が出力
prerender pageFiled=pageField
prerender subAppField=subAppField
2.
ボタンでsubmitする
ログとして下記の表示が出力
doUpdate pageFiled=null
doUpdate subAppField=null
prerender pageFiled=pageField
prerender subAppField=null
ここで2つの疑問がわきます。
疑問1
@SubapplicationScopeの値の引継ぎが失敗しているのでは?
疑問2
@PageScopeの値の復旧はprerender時には行われていますが、doXXXのイベント発
生に間に合うタイミングで行われないのでしょうか?
要望としてはdoXXX実行時に間に合うタイミングで復旧する事を希望いたします。
実際はJSFコンポーネントがPageクラスのgetter/setterを利用し始める前でしょ
うか・・・
JSFに明るくないため中途半端な技術要望ですみません。
※1.0.10の@SubapplicationScopeはそのようなタイミングで動作しているように
思えます。