如何在adf树节点中添加指向jsp页面的链接?

时间:2012-04-26 07:23:16

标签: oracle-adf

我制作了一个adf树,但我无法为每个子节点添加链接。

3 个答案:

答案 0 :(得分:1)

您没有提到您是否在WebCenter Portal应用程序中。但是如果您在Portal Application中可以获取NavigationContext的帮助以进行导航,您可以在documentation中找到更多信息和示例。您也可以使用来自支持bean的NavigationContext。您可以定义commandLink的actionListener,并且可以从该方法导航到后端和jspx页面中的各个页面。

如果您不在Portal应用程序中,则应在Fusion Web应用程序中通过adfc-config.xml的control-flow-case定义导航。不要使用FacesConfig进行导航。阅读此documentation以了解导航系统的工作原理。

由于您处于树模型中并且需要参数,因此您可以将某个值设置为session:

<af:tree value="#{ConnectorTest.model}" var="node" > 
     <af:commandLink text="#{node.text}" action="#{node.action}">
          <af:setPropertyListener from="#{node.value}" to="#{sessionScope.value}" type="action"/>
     </af:commandLink>
</af:tree>

此处的操作将在adfc-config中定义。如果你不需要传递参数然后忽略af:setPropertyListener,你应该在配置文件中定义动作。

希望这会有所帮助。


编辑:

假设您有两个页面:Page1.jspx和Page2.jspx。现在,您需要按照以下方式在adfc-config.xml中定义操作(特别是from-action):

<?xml version="1.0" encoding="ISO-8859-1" ?>
<adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
  <view id="p1">
    <page>/path-to-the/Page1.jspx</page>
  </view>
  <view id="p2">
    <page>/path-to-the/Page2.jspx</page>
  </view>

  <control-flow-rule>
    <from-activity-id>p1</from-activity-id>
    <control-flow-case>
      <from-outcome>goToP2</from-outcome>
      <to-activity-id>p2</to-activity-id>
    </control-flow-case>
  </control-flow-rule>
</adfc-config>

现在,如果你有一个commandLink: <af:commandLink id="link" action="goToP2" />会引导您转到Page2.jspx。 action属性也接受el表达。

答案 1 :(得分:0)

您是不是要在子节点上添加超链接?

<af:tree var="node" value="#{myBean.myTree.root}" id="t1" focusListener="#{myBean.eventMethod}">
<af:commandLink text="#{node.firstname}" />
</af:tree>

当你点击节点时它会激活焦点事件并调用接受FocusEvent obj作为参数的方法eventMethod,在这个方法中你设置导航规则等等......

试试吧

答案 2 :(得分:0)

如果要为不同的子节点显示不同的操作,可以使用<af:switcher>标记