[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 メーリングリストの案内