Java 如何从.jsf页面adf 12c中的函数获取返回值?

Java 如何从.jsf页面adf 12c中的函数获取返回值?,java,oracle,oracle-adf,jdeveloper,oracle-fusion-middleware,Java,Oracle,Oracle Adf,Jdeveloper,Oracle Fusion Middleware,我正在页面加载(.jsf页面编程)上调用一个函数,它工作正常,但函数返回(0或1)字符串值。我想根据jsf页面中的返回值显示或隐藏按钮 如何在.jsf页面上获取返回值 如何根据返回值应用显示和隐藏逻辑 下面是如何在页面加载时调用函数 <f:metadata> <?audit suppress oracle.ide.xml.validation-error?> <f:event type="preRenderView" listener

我正在页面加载(.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']}"/> 
<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']}"/> 


我使用的是adf 12c中的.jsf页面。

只需要在要应用逻辑的标记的render属性中调用函数

 <af:button text="Supplier" id="b4" inlineStyle="width:190px;"
            destination="Supplier_Setup.jsf" icon="#{resource['images:supplier.png']}"/> 
<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.viewPrivilEdge('Program')=='1'}.”。。。。。。。。。。如果返回值等于“1”,则它将渲染,否则它将不渲染

请小心使用渲染。Rendered=false可防止为该组件生成任何标记。这意味着您不能简单地在组件上设置rendered=true并期望它出现——它不会出现。在这种情况下,必须刷新包含布局管理器的布局,才能使其进行渲染。您可能希望这里的Visible=false,然后为组件生成标记,设置Visible=true将使组件出现


Rendered通常是为安全组件保留的,您根本不想在页面源中使用标记。

为什么要使用“backing bean”作用域bean?为什么函数返回0或1而不是布尔值?如果该函数返回布尔值,则该函数的所有用户都能够编写更好的代码。必须测试==“1”是脆弱的代码,容易出错,并且包含意外的复杂性。