【发布时间】:2012-02-28 18:28:30
【问题描述】:
我在 PF 论坛上问过这个问题,但似乎没有人愿意回答,所以我想在这里碰碰运气。
我有一个 ui:repeat 在 TabView 中的 Ajax 调用后没有正确更新。
简单的场景是我有一个 ui:repeat 指向一个 ArrayList(ArrayList 包含带有字符串的简单 pojos)。在此我有一个 h:inputText,其值为 pojo 的 String getter/setter。 ui:repeat 包含在 h:panelGroup 中。我使用 p:commandButton 来运行更新 ArrayList 的操作(只需将几个对象添加到 String 的 Math.random 值),然后更新 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>
【问题讨论】:
标签: jsf primefaces