1

次のようなレガシー コードを移行しています。

<c:forEach items="#{sel}" var="crit" end="12">
  <tr>
    <td class="criteriaName">
      <c:set var="tip" value="#{Factory.makeTooltip(crit.string)}" />

      <c:if test="#{0 != fn:length(tip)}">
        <a:outputPanel layout="block">
          <h:outputText value="#{crit.kriterium}" styleClass="tooltipAvailable"/>
            <rich:tooltip layout="block">
              <h:outputText escape="false" value="#{tip}" />
            </rich:tooltip>
         </a:outputPanel>
       </c:if>

       <c:if test="#{0 == fn:length(tip)}">
         <h:outputText value="#{crit.kriterium}" />
       </c:if>
     </td>
  </tr>
</c:forEach>

今、私はand を対応するandに置き換えよう<c:if><c:forEach>しています。問題は、2 回反復する必要があることです。1回は 0 から 12 まで、次に 13 から最後までです。<ui:fragment><ui:repeat>sel

endforeach タグの属性のように、リストの繰り返しを分割する方法が見つかりませんでした。これは純粋なビューの問題であり、そこで処理する必要があるため、バックエンドでリストを分割することは避けたいと思います。

問題は、上記のフラグメントを指定した方法で置き換えることができますか? 代替手段は何ですか?

4

1 に答える 1

5

EL 2.2 を使用している場合は、通常の Java メソッドを呼び出すことができます。

selそれがここにあると仮定すると、List使用できます

<ui:repeat var="crit" value="#{sel.subList(0,12)}">

そうではなく、常に交換可能であるui:repeatc:forEachは限らないため、ユースケースが有効であることを確認してください。

于 2013-04-08T09:32:08.843 に答える