2009-07-10 24 views
6

希望有人可以幫助我輕輕剋制一段時間後,我在a4j鏈接/按鈕執行完動作後重新呈現RichFaces組件。我的問題的簡化版本如下:如何在a4j鏈接被調用後重新呈現RichFaces組件

我有2個輸出組件顯示這是基於我的經理類中的一些值呈現文本值:

<h:outputText id="on" value="ON" rendered="#{manager.isOn}" /> 

<h:outputText id="off" value="OFF" rendered="#{not manager.isOn}" /> 

我也有叫2 A4J鏈接一些動作,然後重新呈現上述的outputText組件:

<a4j:commandLink ajaxSingle="true" value="Set On" action="#{manager.setOn(true)}" reRender="on,off" /> 

<a4j:commandLink ajaxSingle="true" value="Set Off" action="#{manager.setOn(false)}" reRender="on,off" /> 

我會希望發生的事情是,當我點擊「設置打開」按鈕,在「ON」 outputText組件將取消隱藏,和「OFF outputText組件會顯示。但是,這不會發生。

有沒有人有答案,爲什麼這是如此,以及如何在a4j組件動作完成後重新渲染這些組件?

回答

11

裹在s:divoutputText組件重新渲染如下:

<s:div id="myDiv"> 
    <h:outputText id="on" value="ON" rendered="#{manager.isOn}" /> 

    <h:outputText id="off" value="OFF" rendered="#{not manager.isOn}" /> 
</s:div> 

<a4j:commandLink ajaxSingle="true" value="Set On" 
    action="#{manager.setOn(true)}" reRender="myDiv" /> 

<a4j:commandLink ajaxSingle="true" value="Set Off" 
    action="#{manager.setOn(false)}" reRender="myDiv" /> 
0

我假設你H:的outputText元素關閉並不在加載時間呈現這一頁。

RichFaces的不會重新呈現這些組件後即使呈現值改爲真正

1

您重新提交父母。它不一定是一個Seam標籤。

3

我同意基因,但我能找到的最好的辦法是圍繞內容與

<a4j:outputpanel id="whatever_id" />

例如,

<a4j:outputpanel id="myDiv"> 
    <h:outputText id="on" value="ON" rendered="#{manager.isOn}" /> 
    <h:outputText id="off" value="OFF" rendered="#{not manager.isOn}" /> 
</a4j:outputpanel> 
相關問題