我有这个简单的代码,它使用ui:repeat并基于项目列表,应该使用h:outputText输出一些数据。
XHTML代码
<p:fragment id="tail_content" rendered="#{cBean.activated}">
<ui:fragment rendered="#{mBean.stubMytile}">
<div id="detail_information_mytile" class="data-sidebar">
<ul>
#{mBean.dataList.size()} <!-- This prints correctly based on the elements present in the list -->
<ui:repeat var="info" value="#{mBean.dataList}">
<li> <!- not present in DOM -->
<div class="float-container">
test <!- not present in DOM -->
<div class="pull-left">
<h:outputText id="outputText_Type" value="#{info.type}"/>
</div>
<div class="pull-right">
<h:panelGroup styleClass="tile_spinner">
<!-- some h:outputs displaying data from the bean -->
</h:panelGroup>
</div>
</div>
</li>
<li>
<div class="float-container">
<div class="pull-left">
<h:outputText value="#{info.nickname}" />
</div>
</div>
</li>
</ui:repeat>
</ul>
</div>
</ui:fragment>
</p:fragment>
mBean
private List<DataInfo> dataList; //Getter setters have been generated.
DataInfo属性-类已序列化
//Getter setters have been generated.
private String type;
private String integer;
private String decimal;
private String nickname;
输出-DOM视图-请注意,即使列表的大小为2,DOM中也没有'li'标签。
<div id="viewns_Z7_80E418O0L04R30A3DRP3GU12C4_:leftSideBar_form:tail_content">
<div id="detail_information_mytile" class="data-sidebar">
<ul>
2
</ul>
</div>
</div>
我怀疑这是ui:repeat的问题,因为它无法循环遍历元素并打印它们。尝试过各种方法,但没有成功。
一些其他信息
使用的
- xmlns是xmlns:ui =“ http://java.sun.com/jsf/facelets”
- 尝试将值打印为#{mBean.dataList.get(0).type},这可行。
- size()方法不会被覆盖。
- 使用的jsf-api版本为2.0.3-b05-是的,这已经很旧了(但是,请参阅#5)
- 同一段代码部署在3台服务器上,它可以在其中2台服务器上运行,但不能在一台服务器上运行。而且,这个问题与那台服务器不起作用有关。
- 服务器(共3个):IBM Portal 8
让我知道您的发现以及我可以尝试的任何建议。