渲染a4j commandButton不起作用;页面无法呈现

时间:2012-05-31 14:47:23

标签: jsf ajax4jsf

当我单击按钮handler.toggleCreatingTheme()被调用,但outputPanel没有渲染。当我刷新页面(f5)时,会显示面板的内容。

                <a4j:commandButton styleClass="simple-submit-button"
                    action="#{handler.toggleCreatingTheme()}"
                    rendered="#{!handler.creatingTheme}"
                    value="txt"
                    immediate="true"
                    render="newThemeForm" oncomplete="initEditor()" status="statusWait" />

                <a4j:outputPanel id="newThemeForm" ajaxRendered="true" rendered="#{handler.creatingTheme}">

这个标签都在h:form标签中,只有一个h:form。

如何让页面自行刷新,以便在我点击按钮时呈现面板?

2 个答案:

答案 0 :(得分:1)

newThemeForm嵌入另一个a4j:outputPanel并渲染它而不是reRendering newThemeForm。这是因为newThemeForm在尝试渲染时不会出现在DOM中rendered }属性仍为false。 像:

<a4j:outputPanel id="outerPanel>
<a4j:outputPanel id="newThemeForm" rendered="#{bean.booleanvalue}">
</a4j:outputPanel>
</a4j:outputPanel>

渲染outerPanel而不是newThemeForm

答案 1 :(得分:0)

我已经尝试过AhamedMustafaM提到的方式,但它并没有与我合作,所以我搜索并尝试了一会儿所以最后我得使其解决方法,这里是如何

<a4j:commandButton id="clear" value="Clear" action="#{handler.clearData}"  immediate="true"  >
    <!-- dummy call just to make it work -->
    <a4j:actionListener listener="#{ViewerController.test}"/>
    <f:ajax render="dataGroupPanel"/>
</a4j:commandButton>