The following describes the methods for creating links to other navigation nodes:
● Navigation Tag Library (JSP)
The navigation tag library provides access to navigation nodes and can create navigation links from them.
For example, the following exposes the navigation node ROLES://portal_content/myRole/myIView and creates a link for navigating to the node:
<nav:navNode navTarget="ROLES://portal_content/myRole/myIView">
<nav:navNodeAnchor
navigationMethod="byURL"
urlParameters="<%=urlParameters%>"
anchorAttributes="class='myCSSstyle'"/>
</nav:navNode>
The tag library is for portal components built from a JSP page.
For more information, see Navigation Tag Library.
● Client-Side Eventing (EPCM)
The portal’s client-side eventing mechanism (EPCM) provides a JavaScript function for navigating to a specific navigation node.
The following creates a link for navigating to the ROLES://portal_content/myRole/myIView node:
<A HREF="myLink"
onclick="return
EPCM.doNavigate
('
ROLES://portal_content/myRole/myIView')">
This is an HTML
Link
</A>
For more information, see Client-Side Eventing
Instead of writing the code for the EPCM.doNavigate call, you can get the code by calling NavigationEventsHelper.addClickEvent(), which creates the code and stores it as a StringBuffer in one of the function’s parameter, as shown in the following:
import com.sapportals.htmlb.Link;
import com.sapportals.portal.navigation.NavigationEventsHelper;;
import com.sapportals.portal.navigation.NavigationEventsHelperService;
NavigationEventsHelperService service =
(NavigationEventsHelperService)
PortalRuntime.getRuntimeResources().getService(
NavigationEventsHelperService.KEY);
NavigationEventsHelper helper =
service.getNavigationEventsHelperInstance();
INavigationNode currNode = service.getCurrentContextNavNode(request);
Link titleLink =
new Link(
currNode.getName(), currNode.getTitle(request.getLocale()));
StringBuffer scriptTarget = new StringBuffer();
helper.addClickEvent(
currNode, scriptTarget, request, false, null);
titleLink.setReference("javascript:void(0)");
titleLink.setOnClientClick(scriptTarget.toString());
titleLink.setLinkDesign(LinkDesign.DRAGRELATE);
● Portal Runtime Link (PRT)
You can create a link to a specific portal component instead of to a node in the navigation hierarchy. Use the PRT API to create a link, as follows:
IPortalComponentURI componentURI = request.createPortalComponentURI();
componentURI.setContextName("myApplication.myComponent");
myUrl = componentURI.toString();
Embed the myURL string in an HTML anchor tag.
For more information on this API, see Request URL.