0

私はjava/spring / tilesアプリケーションを持っています-基本的にはフォームのコレクションであり、それぞれにバッキングエンティティオブジェクトがあります。この作業の最後に、ユーザーは少なくとも1つまたは最大5つのエンティティのデータを入力します。

ユーザーが入力したすべてのデータを表示する概要画面を表示する必要があります。この時点で、ユーザーが入力したオブジェクトがわかり、それらにアクセスできるようになります。私はそのすべてのデータを表示するためのクリーンな方法を考え出そうとしています。私の最初の考えは、jstl / elを使用して動的にすべてを吐き出すことでしたが、それはすぐに手に負えなくなりました。今、私はすべてのオブジェクトに対してこれを行うことを検討しています。

<c:if test="${not empty object1}">
    ${object1.field1}
    ${object1.field2}
</c:if>
...
<c:if test="${not empty object5}">
    ${object5.field1}
    ${object5.field2}
</c:if>

その種のサックのように最大5つのオブジェクトを説明する必要があるように感じます-それは不器用に思えます(さらに、オブジェクトごとに2つ以上のフィールドがあります)。この種のことを行うためのより良い方法はありますか?私は実際にはほとんどすべての解決策を受け入れています。各オブジェクトのフィールドを反復処理する方法があると思ったので、ここでjstlパスをたどりましたが、例が見つからなかった場合。それで、何かが滑らかになりますか、それともこのようなjstlでそれを打ち破りますか?ヒントをいただければ幸いです。

4

2 に答える 2

0

オブジェクトのtoString()メソッドを上書きし、フィールドの表示方法を返します。次に、オブジェクト自体を出力します。${objectX}。すべてのオブジェクトを反復処理できると思います。

于 2013-03-26T22:11:47.310 に答える
0

GenericFormObjectすべてのフォームオブジェクトによって実装されるインターフェイス(例:)を作成し、 html(例:)として表示するメソッドを作成できますgetHtmlString()

次に、コレクション内のすべてのフォームオブジェクトをビューに渡すことができ、JSPでは次のようにします。

<c:forEach var="formObj" items="${formObjCollection}">
  ${formObj.htmlString}
</c:forEach>
于 2013-03-26T23:28:43.153 に答える