【问题标题】:How to iterate over an arraylist in jsf without `<t:datatable>` or `<t:datalist>`如何在没有`<t:datatable>`或`<t:datalist>`的情况下迭代jsf中的arraylist
【发布时间】:2012-01-17 10:34:14
【问题描述】:

如何在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>

我尝试了&lt;t:datatable&gt;&lt;t:datalist&gt;,但两者都做不到。

【问题讨论】:

  • 只是想知道,但为什么你认为 t:datalist 不起作用?

标签: jsf jsf-1.2


【解决方案1】:

假设您使用 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 指向某个后备bean,该bean 返回List,每行的值不同。

【讨论】:

    【解决方案2】:

    为什么不使用 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-24
      • 2021-01-10
      • 2018-03-21
      • 2023-03-13
      • 2013-02-28
      • 1970-01-01
      • 1970-01-01
      • 2017-05-07
      相关资源
      最近更新 更多