2014-10-01 74 views
1

在下面的代碼中,我單擊Submit按鈕。那result值變爲truebacking_home豆通過ajax調用。<h:outputText>即使在ajax更新後也呈現舊值

如果我刪除呈現的rendered="#{backing_home.result}",我會看到更新的輸出正確。 但下面的代碼是false。我認爲它並沒有提供新的價值

<h:commandButton id="MySubmit" value="Submit" action="#{backing_home.toggleRenderResult}"> 
    <f:ajax render=":AjaxGuess:result2"/> 
</h:commandButton> 
<h:outputText id="result2" value="#{backing_home.result}" rendered="#{backing_home.result}" /> 

可能是什麼原因?

+0

這是一個常見的錯誤,你應該包括在panelGroup中我們將outputText和更新panelGroup中,而不是... – 2014-10-01 08:53:24

+0

@Hatem Alimam我可以知道爲什麼嗎? – user2771655 2014-10-01 09:15:07

+0

因爲如果值爲false,outputText將不存在,如果不存在,即使值爲true,也可以更新。所以你必須有一個總是存在的元素來更新哪個是panelGroup。 – 2014-10-01 09:18:05

回答

0

我根據Hatem Alimam的評論更新了代碼。

<h:commandButton id="MySubmit" value="Submit" action="#{backing_home.toggleRenderResult}"> 
    <f:ajax render=":AjaxGuess:result2"/> 
</h:commandButton> 
<h:panelGroup id="result2"> 
    <h:outputText value="#{backing_home.result}" rendered="#{backing_home.result}" /> 
</h:panelGroup> 
相關問題