У меня проблема с ui:repeat
в теге h:dataTable
. У меня есть одна коллекция с именами полей и другая с данными. Поэтому я сопоставляю их по индексам. Когда я загружаю страницу, выдается исключение OutOfBoundsException
. Но когда я помещаю filingCabinetManagerBean.filingCabinet.schema.fields.indexOf(schemaField)
вне ui:repeat
, он отображает правильные индексы. Итак, я попытался разделить его и объявил ui:param
, а также c:set
переменными, но та же проблема. cardData
атрибут factCard не нулевой и не пустой, в нем 7 элементов, я уже отладил его. Итак, у вас есть идеи, в чем может быть проблема?
PS: Когда я меняю ui:repeat
на h:dataTable
, он работает. И самое главное, идентичная конструкция используется на другой странице JSF, и она работает, разница только в том, что я получаю cardData
из карты, на которую ссылается одна внешняя таблица данных, поэтому это не свойство Bean(dot)
и так далее, а только variable(dot)
скоро.
Есть идеи? Спасибо за помощь. :)
<p:panel header="#{fileUploadBean.actualCard.id}">
<h:dataTable value="#{filingCabinetManagerBean.filingCabinet.schema.fields}" var="schemaField" style="vertical-align: top">
<h:column><h:outputText value="#{schemaField.fieldTitle}:" style="font-size: 20px;font-weight: bold"/></h:column>
<h:column>
<ul>
<ui:repeat value="#{fileUploadBean.actualCard.cardData.get(filingCabinetManagerBean.filingCabinet.schema.fields.indexOf(schemaField)).data}" var="data">
<li><h:outputText value="#{data.string}"/></li>
</ui:repeat>
</ul>
</h:column>
</h:dataTable>