ADF:显示/隐藏af:navigationPane中的选项

时间:2014-04-02 15:04:58

标签: jsf jsf-1.2 oracle-adf jdeveloper

我正在使用JDeveloper 11.1.1.7.0

我已按照本教程http://docs.oracle.com/cd/E18941_01/tutorials/jdtut_11r2_43/jdtut_11r2_43.html在我的应用程序中创建基本和简单的左侧菜单。

本教程展示了更多高级主题,但我创建了一个简单的左侧菜单,其中包含一个列表。

我已经创建了一个无界的任务流,拖放一个通配符,然后是视图,然后是控制流,...它完美无缺

在JSF模板的左侧,我有这段代码:

<af:navigationPane id="pt_np1" hint="list" value="#{supervision_menu}" var="supervisionInfo">
<f:facet name="nodeStamp">
    <af:commandNavigationItem text="#{supervisionInfo.label}" id="pt_cni1"
                            destination="#{supervisionInfo.destination}"
                            action="#{supervisionInfo.doAction}"/>
</f:facet>

我需要一个高级功能,我想根据参数显示/隐藏一些选项。

我需要使用此参数执行视图对象,处理结果,以便我获取信息以了解可以显示或隐藏哪些选项。

所以,我的问题是:

  • 作为此流程的第一步,我如何强制执行此检查?
  • 在生成的menu.xml和af:commandNavigationItem中,有可见属性。我应该把条件放在哪里?

非常感谢任何帮助。感谢

2 个答案:

答案 0 :(得分:1)

不完全确定你的意思:

  

我需要使用此参数执行视图对象。

假设您的意思是&#34;对VO&#34;执行QUERY,那么如果您使用ViewCriteria创建了与VO where子句进行AND运算的where子句片段,那么您可以使用ExecWithParams (hereherehere)并将此方法拖到任务流上,作为导航到视图的一部分。然后这将在进入视图之前执行。或者使用你可以使用Invoke on Binding图层的可执行文件 - 拖动到可执行文件列表的顶部,但这不再是推荐的方式,被替换为以前的方法。 如果你没有使用ViewCriteria(为什么不?),那么一个建议是在包含VO的AM上公开一个方法,并将parms传递给这个方法并让它调用VO,但这基本上就是ExecWithParms所做的。一旦暴露,该方法可以以与上面提到的相同的方式使用。如果你能更准确地描述你想要做的事情,我可以尝试提供更多的帮助。

答案 1 :(得分:1)

正如我告诉Joe的,最终解决方案需要改变方法。

我创建了一个无限制的任务流程,然后创建了一个菜单,然后根据用户角色/权限添加ADF安全性并最终显示/隐藏选项。

我希望它有所帮助。谢谢