重新呈现的属性不适用于a4j:commandButton

时间:2015-08-12 13:44:17

标签: jsf richfaces jsf-1.2

我在我的项目中使用JSF 1.2和RichFaces。我正在尝试实现一个方案,如下所示,我的页面中有两个rich:panel,并且它们的呈现属性在bean中设置为boolean变量,并且设置了变量的默认值为false,因此第一次加载页面时,面板不会被渲染。我的页面中有a4j:commandButton和按钮的action属性我在我的bean中调用了一个方法,它设置了两个标志变量,但是即使设置了变量,面板也没有渲染,我是还设置了按钮的rerendered属性,我认为我没有错过任何步骤。

1 个答案:

答案 0 :(得分:-1)

如果在加载页面时组件不是rendred,那么即使在某些commanad按钮单击时将boolean变量的值更改为true,它也不会进行任何更改。您的组件应该在按钮单击时呈现。所以把你的组件放在另一个组件中请低于代码

#{bean.renderResult}默认为false时,以下操作无效:

<h:form id="form">
    <h:commandButton value="Submit" action="#{bean.toggleRenderResult}">
        <f:ajax render=":result" />
    </h:commandButton>
</h:form>
<h:outputText id="result" value="#{bean.result}" rendered="#{bean.renderResult}" />

您需要确保呈现ID指向JSF生成的HTML输出中已存在的组件。

以下工作:

<h:form id="form">
    <h:commandButton value="Submit" action="#{bean.toggleRenderResult}">
        <f:ajax render=":result" />
    </h:commandButton>
</h:form>
<h:panelGroup id="result">
    <h:outputText value="#{bean.result}" rendered="#{bean.renderResult}" />
</h:panelGroup>

有关详细信息,请查看http://balusc.blogspot.in/2011/09/communication-in-jsf-20.html#AjaxRenderingOfContentWhichIsByItselfConditionallyRendered