Я спросил это на форуме PF, но никто, кажется, не хочет отвечать, поэтому, хотя я бы попробовал здесь свою удачу.JSF Primefaces TabView проблемы
У меня есть ui: repeat, который не обновляется правильно после вызова Ajax, когда он находится в TabView.
Простой сценарий У меня есть ui: repeat, указывающий на ArrayList (ArrayList содержит простые pojos со String). Внутри этого у меня есть h: inputText, чье значение - стример getter/setter. Ui: repeat содержится в h: panelGroup. Я использую p: commandButton для запуска действия для обновления ArrayList (просто добавьте пару объектов к нему значение Math.random для String), а затем обновите h: panelGroup. Обновленные значения в ArrayList не отражают в полях ввода ui: repeat. По-видимому, это влияет только на поля ввода, поскольку поля outputText корректно обновляются. Также, если я делаю то же самое для p: dataTable, поле ввода обновляется правильно. Если я удалю теги Tabview и Tab, он отлично работает.
Как это работает при удалении вкладок, я могу только предположить, что это ошибка, и она не предназначена для работы именно так. Если кто-то может подтвердить, действительно ли это так, или если существует жизнеспособная работа. Мне нужно использовать ui: repeat, поскольку мои поля не в табличном формате. Это произошло только после перехода с PF 2.2. Я в настоящее время на PF 3.1, Weblogic 10.3.4 и Mojarra 2.0.4
<p:tabView>
<p:tab title="Test">
<h:form prependId="false">
<p:commandButton id="testStringCheck"
value="Test String Check"
process="@form"
update="testPanel"
action="#{testBean.generateVOwithRandomStrings}">
</p:commandButton>
<h:panelGroup id="testPanel" layout="block">
<ui:repeat value="#{testBean.voList}" var="entry">
<h:outputText value="#{entry.randomString}"/>
<p:inputText style="display:block;"
value="#{entry.randomString}"
size="15">
</p:inputText>
</ui:repeat>
</h:panelGroup>
</h:form>
</p:tab>
</p:tabView>
Спасибо за ответ, но это не решило проблему. Я уже пробовал h: commandButton и ссылку вместе с версиями pf. – andyfinch
@andyfinch Вы пытались удалить атрибут процесса? Вероятно, это не обязательно. –
По умолчанию это форма? Даже если это так, я все равно добавлю его для удобочитаемости. – andyfinch