Как выполнить перебор массива в jsf без `<t: datatable>` или `<t: datalist>` - PullRequest
2 голосов
/ 10 декабря 2011

Как получить следующий результат в JSF с

<div id="tagcloud">
    <a href="#" rel="0.1">Lorem</a>
    <a href="#" rel="2">ipsum</a>
    <a href="#" rel="3">dolor</a>
    <a href="#" rel="4">sit</a>
    <a href="#" rel="5">amet,</a>
    <a href="#" rel="6">consectetur</a>
    <a href="#" rel="7">adipisicing</a>
</div>

Я пытался <t:datatable> или <t:datalist>, но оба не смогли.

Ответы [ 2 ]

4 голосов
/ 11 декабря 2011

почему бы не использовать jstl

<c:forEach var="person" items="${people.people}">
        <tr>
          <td>${person.name}</td>
          <td>${person.age}</td>
          <td>${person.height}</td>
        </tr>
      </c:forEach>

или

<ui:repeat value="#{TableBean.perInfoAll}" var="info">
   <li> 
  <h:inputText value="#{info.id}" />
  <h:inputText value="#{info.name}" />
   </li> 
  </ui:repeat>
4 голосов
/ 10 декабря 2011

Предполагается, что вы используете Facelets, следующее должно сделать это:

<div id="tagcloud">
    <t:dataList value="#{backingBean.items}" var="item" layout="simple">
        <a href="#" rel="#{item.rel}">#{item.name}</a>
    </t:dataList>
</div>

Если вы используете JSP (надеюсь, что нет), вы можете заменить # {item.name} на h: outputText.

backingBean.items в примере указывает на некоторый компонент поддержки, который возвращает List со значениями, которые отличаются для каждой строки.

...