我们在CAF portlet中有两个caf_h:panelBlock元素(id="panel1"
和id="panel2"
),这些元素应该根据辅助bean的属性(rendered="#{ViewBean.property}"
和{{4}}进行渲染{1}})。
所以这样一个面板的XHTML锁定如下:
rendered="#{not ViewBean.property}"
支持bean的属性声明如下:
<caf_h:panelBlock id="panel1" rendered="#{ViewBean.property}">
content
</caf_h:panelBlock>
并在bean的Initialize()方法中初始化:
private java.lang.Boolean property;
现在出现了棘手的部分:我们想通过点击命令链接显示/隐藏这些面板:
public String initialize() {
this.property = true;
}
此命令链接调用的bean方法反过来更改属性的值:
<caf_h:commandLink action="#{ViewBean.click}" id="commandLink"></caf_h:commandLink>
但是,块面板的可见性/渲染完全不受影响。可能是什么原因?
答案 0 :(得分:0)
事实证明,如果稍后在portlet生命周期中没有再次更改ViewBean.property
,上述方法可以正常工作 - 正如我们在beforeRenderResponse()
方法中的意外情况那样。