У меня есть этот простой код, который использует 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 - обратите внимание, что в DOM нет тегов 'li', даже если размер списка равен 2.
<div id="viewns_Z7_80E418O0L04R30A3DRP3GU12C4_:leftSideBar_form:tail_content">
<div id="detail_information_mytile" class="data-sidebar">
<ul>
2
</ul>
</div>
</div>
При этом я подозреваю, что проблема в пользовательском интерфейсе: повторите, поскольку он не может перебрать элементы и распечатать их. Пробовал разные вещи, но безуспешно.
Некоторая дополнительная информация
- 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
Дайте мне знать ваши выводы и любые предложения, которые я могу попробовать.