簡體   English   中英

保留帶有主字體的所選項目 <p:selectManyMenu> 在單擊向導組件的NEXT / BACK時

[英]Retain selected item with primefaces <p:selectManyMenu> while clicking NEXT/BACK of wizard component

wizard組件中使用素數<p:selectManyMenu>時,按NEXT和BACK按鈕無法保留所選的項目。 例如在

<h:outputText value="Roles" />
<p:selectManyMenu id="role" value="#{backingBean.rolesList}"
    style="height:75px">
    <f:selectItems value="#{backingBean.secRole}" var="roles"
        itemLabel="#  {roles.roleName}" itemValue="#{roles.roleId}">
    </f:selectItems>
</p:selectManyMenu>

當我按下NEXT / BACK按鈕時,被選中的itemLabel將被清空。如何在其中保留所選值?

如我先前的評論中所述,在使用JSF ManagedBeans的Spring 3依賴項注入時, @ViewScoped bean不起作用。 使用注解或faces-config.xml聲明托管bean無關緊要,ViewScoped仍然不會保持對話樣式范圍。

要解決此問題,我要做的是改用@SessionScoped ,但這可能是個問題,因為下一次用戶導航到此頁面時,先前的狀態仍然存在,您實際上可能希望重置狀態。 在離開頁面之前,可以通過在actionListener導航方法actionListener bean屬性設置為默認值來部分解決此問題。 但是,如果用戶要在地址欄中手動鍵入頁面然后返回,這將無濟於事。 或者,他們在其“收藏夾”或“書簽”中存儲了您的Web應用程序的一個或多個URL。

解決此問題的更好方法是讓您的其他RequestScoped Bean或其他頁面特定的Bean在創建時找到特定的SessionScoped Bean,並在其上調用一個公共方法,將您的bean屬性重置為其默認值。 或者,您可以簡單地從會話中完全刪除SessionScoped bean,然后在下次請求時將其重新創建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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