3

サードパーティのコンポーネントを使用せずに JSF 1.2 のリストを反復処理する方法はありますか? トマホークを使ってできることを知っています。JSTLを使用して実行できることも知っていますが、それは最後の手段として保持しています。また<ui:repeat>、JSF 1.2を使用しているため使用できません。<ui:repeat>jsf 1.2でそれを行うようなエレガントな方法はありますか?

4

1 に答える 1

8

を繰り返し処理できる唯一のJSF 1.2 コンポーネントList<h:dataTable>.

JSP では、他の「標準」(つまり「サードパーティ」ではない) タグで繰り返し処理できるのListは JSTLだけ<c:forEach>です。ListJSTL を使用しても、反復したい がビューのビルド時にすでに利用可能である場合、それほど害はありません。ビューのレンダリング時にのみ使用できる場合にのみ問題が発生します。たとえば、 にネストされており<h:dataTable>、テーブルの のプロパティを反復処理する必要があるためvarです。これは、JSF2 Facelets の JSTL にも記載されている理由により機能しません...理にかなっていますか?

<t:dataList>自分でカスタムを作成してホイールを再発明することにオープンでない限り、Tomahawk's などのサードパーティ ライブラリを使用せずに他の方法はありませんUIComponent。ただし、これは簡単な作業ではありません。

ただし、Facelets 1.x を JSF 1.2 に統合することは可能です。Facelets 1.x docbookにガイドが記載されています。これは、ビュー テクノロジとして JSP を使用する既存の JSF アプリケーションが既にある場合にのみ、かなりの作業になります。JSP を Facelets に変換する必要があります。しかし最終的には、JSF 2.x へのアップグレード パスが非常に簡単になります。ao JSF 1.2 から JSF 2.0 への移行およびJSF2.0 以降のビュー定義言語として Facelets が JSP よりも優先される理由も参照してください。

于 2012-10-02T19:28:05.160 に答える