寻找类似于ui的东西:在JSP中重复使用
问题描述:
我只是想迭代一个列表,我不想要任何html吐出, 所以datalist和c:ForEach不是一个选项。 原因是,该样机已经制造和规则,我们必须使用 <ul>
和<li>
,所以我不能使用任何创建表。寻找类似于ui的东西:在JSP中重复使用
我已经调查和UI:重复会做的工作,但它不会在JSP工作。
我希望有类似Struts中的逻辑:因为迭代我只需要在一个列表上迭代 。
感谢您的帮助。
约翰
答
这究竟你的意思“DataList控件”,但Tomahawk's <t:dataList>
如果省略layout
的属性不发出任何默认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>
当使用JSTL <c:forEach>
在JSP模板指托管bean值,你是依赖于使用的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>
将是一个更好的选择在这里。
答
<c:forEach>
不会产生任何HTML。它只遍历一个集合或数组。它与<struts:iterate>
完全一样,但采用标准方式,并且使用JSP EL。
<ul>
<c:forEach var="item" items="${myListOfItems}">
<li><c:out value="${item.label}"/></li>
</c:forEach>
</ul>
我尝试的第一个例子,它显示了列表中的子弹,但没有出来,在的outputText,也有列表中的2项,它显示了只有一颗子弹 – John
的T :没有任何东西的datalist仍然创建一个unorderedList – John
那么这只是你的错误解释/配置错误 – BalusC