webMethods: показать / скрыть caf_h:panelBlock на основе значения свойства базового компонента
У нас есть два элемента caf_h:panelBlock (id="panel1"
а также id="panel2"
) в портлете CAF, который должен отображаться на основе свойства компонента поддержки (rendered="#{ViewBean.property}"
а также rendered="#{not ViewBean.property}"
).
Таким образом, XHTML такой панели блокируется следующим образом:
<caf_h:panelBlock id="panel1" rendered="#{ViewBean.property}">
content
</caf_h:panelBlock>
Свойство поддерживающего компонента объявляется следующим образом:
private java.lang.Boolean property;
Инициализируется в методе Initialize() компонента:
public String initialize() {
this.property = true;
}
Пришло самое сложное: мы хотим показать / скрыть эти панели, нажав на ссылку команды:
<caf_h:commandLink action="#{ViewBean.click}" id="commandLink"></caf_h:commandLink>
Метод bean, вызываемый этой ссылкой команды, в свою очередь, изменяет значение свойства:
public String click() {
this.property = false;
}
Тем не менее, видимость / рендеринг панелей блоков не влияет вообще. В чем может быть причина?
1 ответ
Оказалось, что вышеупомянутый способ работает нормально, если ViewBean.property
позже не изменяется в течение жизненного цикла портлета - как мы случайно сделали в нашем случае в beforeRenderResponse()
метод.