希望有人能帮助我有轻微的障碍,我在问候的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元件动作完成后?

有帮助吗?

解决方案

包裹outputText组分在s:div并重新渲染如下:

<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" />

其他提示

我同意基因,但我能找到的最好的办法是围绕与内容

<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>

您重新描绘的父。它并不必须是一个Seam标签

我想你 H:。的outputText 元素未在页面加载时间呈现

RichFaces的不会重新呈现这些部件以后即使呈现的值更改为

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top