2013-04-26 43 views
0

使用rich:value的value屬性,select標籤值沒有存儲在bean屬性中,即每當我從列表中選擇一個新選擇時,新值都不會被存儲在 中在bean屬性中,它保留實例字段的初始值。valueChangeListner沒有觸發<rich:select>標籤

這是我的代碼:

我有一個屬性baseSkin,在bean skinBean.I還定義了setter和getter方法。 每當我做出新選擇時,仍然沒有獲得價值

+0

你的代碼在哪裏? – pudaykiran 2013-04-29 12:42:22

回答

1

valueChangeListener不符合人們預期的方式。它在提交表單並且解析器對當前值進行檢查時得到執行。

您還沒有代碼,但我假設你要存儲在bean您單擊列表中的項目後,立即新的價值,是可以做的:

<rich:select id="select"> 
    <f:selectItems value="#{bean.list}" var="item" itemLabel="#{item.value}" /> 
    <a4j:ajax event="selectitem" oncomplete="updateBean(#{rich:component('select')}.getValue())" /> 
</rich:select> 

<a4j:jsFunction name="updateBean"> 
    <a4j:param assignTo="#{bean.value}" name="value" /> 
</a4j:jsFunction> 

當然,你必須檢查值是否真的發生了變化,因爲即使你再次選擇相同的值,ajax監聽器也會觸發。