[Seasar-user:9971] Re: [Teeda]HTML にない値の引き継ぎについて
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2007年 8月 20日 (月) 10:10:30 JST
ひがです。
> 山元と申します。
>
> TeedaでHTMLのフォームにないプロパティの、Pageクラスの値の引き継ぎ動作につい
て教えてください。
>
> ・入力画面 -> 確認画面 -> 結果画面
>
> 上記の流れの処理があり、当初、入力画面のdoメソッドで処理をして結果の値を設定
するようにしていました。
>
> 結果の値は文字列に出来ないオブジェクトだったので、確認画面のhtmlにはフィール
ドを持っていませんでした。
>
> この処理は問題なかったのですが、ひがさんが[Seasar-user:9843]で
> 「結果画面用の処理は、結果画面で行ったほうが良い」と書かれていたのを見て、
> 入力画面からgoで遷移して確認画面のinitializeメソッドで、
> 処理をして値を設定するように変えたところ、値が引き継がれなくなってしまいまし
た。
>
> 最終的に、プロパティのスコープを明示的にサブアプリケーションにすることで
> hogeが出力されるようにはなったのですがスコープを明示しない場合に、
> どうしてこのような動作になるかが理解できませんでした。
>
> この動作はTeedaの動作として想定したものなのでしょうか?
>
Pageクラスのプロパティの情報がないので、
詳しいことはこれ以上わかりませんが、
入力画面と確認画面に同じプロパティがあれば
値は引き継がれます。
また、確認画面で値を維持するには、
hiddenが必要です。
> 前提 ----------------------------------
>
> 結果の値のプロパティ名:hoge
>
> hogeConfirm.html
> hogeのinputフィールドなし
>
> HogeConfirmPage.java
> public Class doFinish() { System.out.println(hoge); }
>
> 修正前 --------------------------------
> hogeEdit.html
> <input type="button" id="doHogeConfirm" value="confirm" />
>
> HogeEditPage.java
> public Class doHogeConfirm() { setHoge("hoge"); }
>
> HogeConfirmPage#doFinish()で"hoge"が出力される
>
> 修正後 --------------------------------
> hogeEdit.html
> <input type="button" id="goHogeConfirm" value="confirm" />
>
> HogeConfirmPage.java
> public Class initialize() { setHoge("hoge"); }
>
> HogeConfirmPage#doFinish()で"null"が出力される
>
> 対応 ----------------------------------
> @SubapplicationScope
> private String hoge;
>
> HogeConfirmPage#doFinish()で"hoge"が出力される
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
--
Yasuo Higa
[E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内