Как добавить ссылку на страницу jsp в узле дерева adf?

Я создал дерево объявлений, но не могу добавлять ссылки на каждый дочерний узел.


person SumitJ    schedule 26.04.2012    source источник


Ответы (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.

person Tapas Bose    schedule 26.04.2012
comment
Это не сработало. Я должен получить значение каждого узла, а затем установить действие в соответствии с выбранным узлом. то есть, если щелкнуть конкретный узел, должен открыться соответствующий JSP. это мое дерево - yonaweb.be/creating_your_own_treemodel_adf_11g_0 - person SumitJ; 30.04.2012
comment
@SumitJha, где вы определили свои действия? - person Tapas Bose; 30.04.2012
comment
единственное действие, которое я определил, находится в командной ссылке ‹af:commandLink text=#{node.text} action=#{node.action}› - person SumitJ; 30.04.2012
comment
но как вызвать это действие при щелчке узла? - person SumitJ; 30.04.2012
comment
Вам не нужно запускать это действие программно, оно будет запущено автоматически. Вам может понадобиться поток управления с подстановочными знаками. - person Tapas Bose; 30.04.2012

Вы хотите добавить гиперссылку на дочерний узел?

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

когда вы нажимаете на узел, он запускает событие фокуса и вызывает метод eventMethod, который принимает объект FocusEvent в качестве аргументов, в этом методе вы устанавливаете правило навигации и т. д. и т. д......

попытайся

person sadia    schedule 26.04.2012
comment
Да, добавление гиперссылки к каждому дочернему узлу в дереве и разные дочерние узлы указывают на разные страницы html/jsp. - person SumitJ; 26.04.2012
comment
это мое дерево: ‹af:tree value=#{ConnectorTest.model} var=node › ‹f:facet name=nodeStamp› ‹af:commandLink text=#{node.text} action=#{node.action}/ › Дерево коннекторов — это мой класс Java. - person SumitJ; 26.04.2012

Вы можете использовать тег <af:switcher>, если хотите отобразить разные действия для разных дочерних узлов.

person Amr Gawish    schedule 26.04.2012