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() метод.

Другие вопросы по тегам