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