2010-04-11 93 views
3

當valuechangelistener方法運行時,我可以重新渲染jsf ui組件嗎? 我問的原因是我的valuechangelistener方法更改了後臺bean中輸入框的值,但它們似乎並沒有被重新渲染。 最終會發生什麼情況是,屏幕上打印的值將保存到支持bean,覆蓋通過valuechangelistener方法加載的值。重新生成JSF組件

下不起作用:

<h:inputText id="inputbox_id" value="#{name}"/> 
<h:selectOneMenu valueChangeListener="#{myBean.changeCountryMenu}"> 
    <a4j:support event="onchange" rerender="inputbox_id" action="#{bean.test}> 
</h:selectOneMenu> 

注意bean.test()永遠不會運行。 (更新:它確實,我有一個renderResponse()跳過它,但值仍然不reRender雖然) 所以我想到的解決方案是重新渲染輸入框從valueChangeListener。 如果還有其他更好的解決方案,我會很高興聽到...

謝謝! 本。

+0

這不是回答問題......問題是:」我可以從後臺bean的代碼重新解析JSF組件? 「不是」我可以通過jsf重新獲得一個JSF組件嗎?「 – 2011-07-24 21:05:02

+0

我想通過」this「引用我的答案。它不回答標題,但它回答了問題 – Bozho 2012-07-26 11:42:09

回答

1

屬性名稱爲reRender(第二次爲大寫R)。也許你需要添加immediate="true「?

此外,檢查this article

+0

中描述的問題謝謝... In實際代碼寫的是正確的.. – Ben 2010-04-12 05:49:50

+0

@Ben然後複製粘貼實際的代碼,只更改名稱.. – Bozho 2010-04-12 07:06:35

+0

謝謝。我讀過BalusC關於jsf生命週期的文章,並意識到我的問題需要更好地理解JSF生命週期。(http://balusc.blogspot.com/2006/09/debug-jsf-lifecycle.html) – Ben 2010-04-12 07:48:33