我在PF論壇上問過這個問題,但似乎沒有人想回答,所以我儘管我會在這裏嘗試我的運氣。JSF Primefaces TabView問題
我有一個用戶界面:重複一遍,當它在一個TabView中的Ajax調用後沒有被正確更新。
簡單的場景是我有一個用戶界面:重複指向一個ArrayList(ArrayList包含簡單的pojos與一個字符串)。在這裏我有一個h:inputText,它的值是pojo的String getter/setter。 ui:repeat包含在h:panelGroup中。我使用p:commandButton來運行一個動作來更新ArrayList(只需向它添加一些對象給該String的Math.random值),然後更新h:panelGroup。 ArrayList中的更新值不反映在ui:重複輸入字段中。這隻會影響輸入字段,因爲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 2012-02-07 16:11:46
@andyfinch您是否嘗試刪除進程屬性?這可能沒有必要。 – 2012-02-07 16:31:26
它是否默認爲表單呢?即使這樣做,我仍然會將其添加爲可讀性。 – andyfinch 2012-02-08 08:57:04