Я создал дерево объявлений, но не могу добавлять ссылки на каждый дочерний узел.
Как добавить ссылку на страницу jsp в узле дерева adf?
Ответы (3)
Вы не упомянули об этом независимо от того, находитесь ли вы в приложении WebCenter Portal или нет. Но если вы находитесь в приложении портала, вы можете воспользоваться помощью NavigationContext для навигации, вы можете найти дополнительную информацию и примеры в документация. Также вы можете использовать NavigationContext из поддерживающего компонента. Вы можете определить actionListener своей команды commandLink, и с помощью этого метода вы можете переходить на различные страницы из бэкэнда, а также со страницы jspx.
Если вы не находитесь в приложении портала, в веб-приложении Fusion вы должны определить свою навигацию с помощью элемента управления-потока файла adfc-config.xml. Не используйте FacesConfig для навигации. Прочитайте эту документацию, чтобы узнать, как работает система навигации.
Поскольку вы находитесь в древовидной модели, и если вам нужно задать параметр, вы можете установить некоторое значение для сеанса как:
<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. Теперь вам нужно определить действие (в частности, действие from) в adfc-config.xml следующим образом:
<?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. Атрибут действия также принимает выражение el.
Вы хотите добавить гиперссылку на дочерний узел?
<af:tree var="node" value="#{myBean.myTree.root}" id="t1" focusListener="#{myBean.eventMethod}">
<af:commandLink text="#{node.firstname}" />
</af:tree>
когда вы нажимаете на узел, он запускает событие фокуса и вызывает метод eventMethod, который принимает объект FocusEvent в качестве аргументов, в этом методе вы устанавливаете правило навигации и т. д. и т. д......
попытайся
Вы можете использовать тег <af:switcher>
, если хотите отобразить разные действия для разных дочерних узлов.