The integration of Java Server Faces in a portal using Portlets is quite easy. Often a simple Portlet is already provided by the portal server. But this portlet converts the URLs from portal URLs to faces URLs and invokes the JSF lifecycle.
How does one integrate with the portal, so that navigation cases point to different portal sites. One solution I’ve seen is by using a separate service as managed bean. The service bean is often application scoped and a special case for navigation. Another way I can think of is using a special navigation handler. This way there is no new service bean but a slightly different navigation rule which points to another portal site.
The main advantage is the way a developer works with this. He doesn’t need to know that there is a site change. Simply write the code and execute a navigation rule which lets the navigation handler switch portal sites. A simple URL could have a special protocol like „portal:/myRoot/mySite/myPortlet“ instead of „/myRoot/mySite/myPortlet“. In the first case the navigation rule points to a portlet in a portal site and in the second it points to a JSP page in the same portlet.