[英]JSF ajax commandbutton not updating primefaces picklist
這是代碼:
<h:form id="articleForm" >
<p:commandButton value="Select tags" ajax="true" >
<f:ajax execute="@form" render="@form :articleForm:tags" />
</p:commandButton>
<p:pickList id="tags" value="#{articleController.dualListModelForTags}" var="tag" itemLabel="#{tag.tag}" itemValue="#{tag}" converter="distinctTagConverter">
<f:facet name="sourceCaption">Distinct tags</f:facet>
<f:facet name="targetCaption">Connected tags</f:facet>
</p:pickList>
</h:form>
單擊命令按鈕時,將調用並執行后備bean中的getDualListModelForTags()。 在getDualListModelForTags()中,我做了一些修改,所以我希望更新選擇列表。 但是選擇列表(id = tags)不會再次呈現。 僅當我刷新頁面時,才會對選擇列表進行修改。
PrimeFaces <p:commandButton>
組件不能與<f:ajax>
一起使用。 您需要使用按鈕自己的以ajax為目標的屬性。 代替<f:ajax execute>
,應該使用<p:commandButton process>
。 但這已經默認為@form
,因此您可以忽略它。 代替<f:ajax render>
您應該使用<p:commandButton update>
。 無需指定@form
已覆蓋的客戶機ID,因此僅@form
就足夠了。 另外, ajax="true"
屬性也是不必要的,因為這已經是默認屬性。
所以這應該做:
<p:commandButton value="Select tags" update="@form" />
與具體問題無關 ,您正在使用getter方法進行業務工作。 這是一個壞主意。 而是在按鈕的action
方法中執行此action
。 您似乎也正在使用會話范圍的bean來查看范圍的數據。 這是一個壞主意。 而是將bean放入視圖范圍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.