簡體   English   中英

JSF AJAX命令按鈕未更新Primefaces選擇列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM