簡體   English   中英

selectOneMenu中的素面默認值

[英]prime faces default value in selectOneMenu

我在View中的selectonemenu組件有問題,我有以下代碼:

<p:selectOneMenu id="city" value="#{logisticsController.selectedTrip}"  >  
                <f:selectItem itemValue="#{null}" itemLabel="Wybierz podroz" />  
            <f:selectItems value="#{logisticsController.tripList}" />  
            <p:ajax update="pojoPickList"  
                    listener="#{logisticsController.handleTripChange}" />  
</p:selectOneMenu>

logisticsController是SessionScoped bean,具有init方法:

@PostConstruct
public void init(){
SelectedTrip = null ;
}

但是每次我刷新頁面時,selectOneMenu都會顯示舊值。 我想將默認值設置為null,謝謝您的幫助

首先,@PostConstruct注釋對您的注入框架(Spring或其他)說,在依賴項注入完成后執行此方法( http://docs.oracle.com/javaee/7/api/javax/annotation/PostConstruct。 html )。
為了簡化起見,我們可以假設此方法將在創建bean之后執行。
因此,由於它是一個會話范圍的bean-它僅為用戶會話創建一次。 這就是為什么在頁面刷新時未調用方法“ public void init()”的原因。

有兩種簡單的方法可以解決您的問題:
1)如果有可能-將SessionScoped bean更改為RequestScoped,然后在每個請求上創建該bean(每次刷新頁面)
2)您可以像這樣在xhtml頁面中添加調用init方法:

...
#{logisticsController.init()}
<p:selectOneMenu id="city" value="#{logisticsController.selectedTrip}"  >  
                <f:selectItem itemValue="#{null}" itemLabel="Wybierz podroz" />  
            <f:selectItems value="#{logisticsController.tripList}" />  
            <p:ajax update="pojoPickList"  
                    listener="#{logisticsController.handleTripChange}" />  
</p:selectOneMenu>
...

暫無
暫無

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

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