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