2013-07-12 68 views
0

我在xhtml頁面中有一個與下面類似的模式面板。a4j渲染器不能正常工作

<h:form> 
    <a4j:commandLink action="" rerender="panel1"> 
</h:form> 

<a4j:outputPanel id="panel1"> 
    <rich:modalpanel> 
     <a4j:form> 
      <h:panelgroup binding=#{mybean.panel}/> 
       <a4j:commandButton id="save"> 
     </a4j:form> 
    </rich:modalpanel> 
</a4j:outputPanel> 

當我點擊a4j命令鏈接時,想顯示具有不同值的模態面板。如果模態面板中沒有a4j:表單,它會正常工作。但是我想驗證並保存模式面板中的屬性,點擊保存按鈕,因此無法繼續處理表單組件。但奇怪的是,當我添加a4j:表單時,面板組停止重新渲染值。請幫我解決這個問題。

我也嘗試將兩者都放在同一個表單中,但是它的工作方式非常不規範。

+0

嘗試使用的''代替''。另外,請確保您的託管bean具有會話作用域,或者是託管bean類聲明中帶'@ KeepAlive'註釋的請求作用域。 –

+0

@ Luiggi門多薩 - 我現在試過了。但仍然沒有工作。當我把一個正常的輸入文本正常工作,但這個面板組沒有被渲染。此面板組是使用綁定屬性動態創建的,是導致此行爲的原因嗎? – aquero

+0

您正在使用哪個JSF版本,1.2或2.x? –

回答

0

也許嘗試這樣說:

<h:form> 
<a4j:commandLink action="" rerender="panel1"> 
</h:form> 



<rich:modalpanel> 
    <h:form> 
    <a4j:outputPanel id="panel1"> 
    <h:panelgroup binding=#{mybean.panel}/> 
    <a4j:commandButton id="save"> 
    </a4j:outputPanel> 
    </h:form> 
</rich:modalpanel> 

對我的作品與Popuppanel

+0

另外a4j:commandLink標記哈沒有rerender屬性只是渲染 –

+0

謝謝@enricko,試圖說,BT仍然無法正常工作。 :( – aquero

+2

@ RichRa在RichFaces 3中,有'reRender'。從RichFaces 4中,這個被重命名爲'render'。 –