寻找类似于ui:repeat在JSP中使用的东西



我只是想遍历一个列表,我不想要任何html文件,所以datalist和c:ForEach不是一个选项。原因是,模型已经制作好了,按照规则我们必须使用<ul><li>,所以我不能使用任何创建表。

我已经调查过了,ui:repeat可以完成这项工作,但是它在JSP中不起作用。

我希望在STRUTS逻辑中有类似的东西:迭代,因为我只需要迭代

谢谢你的帮助。

约翰

<c:forEach>不生成任何HTML。它只迭代一个集合或数组。它所做的事情与<struts:iterate>完全相同,但是以标准的方式,并使用JSP EL。

<ul>
    <c:forEach var="item" items="${myListOfItems}">
        <li><c:out value="${item.label}"/></li>
    </c:forEach>
</ul>

我不太清楚你说的"datalist"是什么意思,但是如果你省略了layout属性,Tomahawk的<t:dataList>默认情况下不会发出任何HTML,所以它应该为你工作。

<ul>
    <t:dataList value="#{memberHandler.subTypes}" var="subType">
        <li><h:outputText value="#{subType.fullSubtypeDisplayName}"/></li>
    </t:dataList>
</ul>
顺便说一下,设置layout="unorderedList"应该呈现与上面示例完全相同的<ul><li>:
<t:dataList value="#{memberHandler.subTypes}" var="subType" layout="unorderedList">
    <h:outputText value="#{subType.fullSubtypeDisplayName}"/>
</t:dataList>

当在引用托管bean值的JSP模板上使用JSTL <c:forEach>时,您依赖于所使用的JSP版本以及JSF是否已经事先自动创建了托管bean。当使用Servlet 2.5/JSP 2.1时,您应该能够在JSTL标记中使用#{}:

<ul>
    <c:forEach value="#{memberHandler.subTypes}" var="subType">
        <li><h:outputText value="#{subType.fullSubtypeDisplayName}"/></li>
    </c:forEach>
</ul>

当使用Servlet 2.4/JSP 2.0时,您应该坚持使用${}并使用<c:out>而不是<h:outputText>,并确保JSF已经通过#{}在视图模板中预先自动创建了托管bean,这会触发自动创建bean,而${}不会。

<h:someComponent value="#{memberHandler.someThing}" />
...
<ul>
    <c:forEach value="${memberHandler.subTypes}" var="subType">
        <li><c:out value="${subType.fullSubtypeDisplayName}"/></li>
    </c:forEach>
</ul>

战斧的<t:dataList>在这里会是更好的选择。

相关内容

  • 没有找到相关文章

最新更新