[Seasar-user:14964] Re: [Teeda]forEach内のconditionについて
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 7月 8日 (火) 21:00:15 JST
小林 (koichik) です.
Date: Tue, 8 Jul 2008 19:10:57 +0900 (JST)
From: [E-MAIL ADDRESS DELETED]
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:14961] Re: [Teeda]forEach内のconditionについて
> forEach内でformを宣言しているため、同一のformが出力されている
それは想定外でした.
> 仮に<div id = "totalAreaItems">と
> <form id = "outTotDisSrhRstAreaForm">の包括関係を逆にすると、
> 「詳細」ボタンを押して画面遷移する際、動的に変化するlinkArea2の値が
> 次画面に正しく引き継がれません。
>
> レイアウトは使用していないのですが、forEach内でボタンの表示、非表示を
> 制御しつつ、formのidをユニークにするための具体的な方法はありますで
> しょうか?
そもそも,Teeda が管理する form をポストバックして
画面遷移をする必要があるのでしょうか?
言い換えると,リンクを使った場合のように GET メソッドで
画面遷移してはいけないのでしょうか?
デザインの都合でボタンを使いたいだけであれば,繰り返しの
中の <form> を Teeda で管理しないようにすればよいかと.
それには <form> に id を付けないか,form または Form 以外で
終わるようにします.
<div id="totalAreaItems">
<form action="/myApp/view/outTotDisSrhRstBld.html">
...
<td><input type="hidden" id="linkArea2"/></td>
この場合,一覧画面からプロパティを引き継ぐことはできません.
一覧画面からプロパティを引き継ぐ必要がある場合は,<form> を
forEach の外に移して,ボタンのid を go〜 から do〜 に変更,
public TotalAreaDto[] totalAreaItems;
public int totalAreaIndex;
public String linkArea2;
public Class do〜() {
linkArea2 = totalAreaItems[totalAreaIndex];
return OutTotDisSrhRstBld.class;
}
のようにすると引き継げると思いますが,どちらかというと
始めに書いた GET で画面遷移する方がオススメです.
一覧から詳細であれば,詳細表示する項目のキーだけ
渡せれば後はサブアプリケーションスコープなどでも十分に
対応できるのではないかと思うので.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内