Как я могу получить возвращенное значение из функции на странице.jsf adf 12c?

Я вызываю функцию при загрузке страницы (страница.jsf программно), и она работает нормально, но функция возвращает (0 или 1) строковое значение. Я хочу показать или скрыть кнопки на основе возвращаемого значения на странице JSF.

Как я могу получить возвращаемое значение на странице.jsf?

Как я могу применить логику показа и скрытия на основе возвращаемого значения?

Вот как я вызываю функцию при загрузке страницы

<f:metadata>
        <?audit suppress oracle.ide.xml.validation-error?>
        <f:event type="preRenderView" listener="#{backingBeanScope.backing_login.viewPrivilidge('Program')}"/>
</f:metadata>

Вот код кнопки, к которой я хочу применить логику

 <af:button text="Supplier" id="b4" inlineStyle="width:190px;"
            destination="Supplier_Setup.jsf" icon="#{resource['images:supplier.png']}"/> 

Я использую страницу.jsf в ADF 12C.

2 ответа

Решение

Только вам нужно вызвать функцию в атрибуте рендеринга этого тега, где вы хотите применить логику

<af:button text="Supplier" id="b4" inlineStyle="width:190px;"
            rendered="#{backingBeanScope.backing_login.viewPrivilidge('Program') == '1'}"           destination="Supplier_Setup.jsf" icon="#{resource['images:supplier.png']}"/> 

"#{backingBeanScope.backing_login.viewPrivilidge('Program') == '1'}" .......... если возвращаемое значение равно '1', оно будет отображаться, в противном случае оно не будет отображаться

Будьте осторожны с использованием Rendered. Rendered = false предотвращает создание любой разметки для этого компонента. Это означает, что вы не можете просто установить rendered = true для компонента и ожидать его появления - этого не произойдет. В этом случае вы должны обновить содержащий менеджер макета, чтобы заставить его отображать. Вы, вероятно, хотите, чтобы Visible = false здесь, тогда для компонента генерируется разметка, и установка visible = true заставит компонент появиться.

Рендеринг часто зарезервирован для защищенных компонентов, где вы вообще не хотите разметки в исходном коде страницы.

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