Changes to portal JSPs

 

+

Search Tips   |   Advanced Search

 

WebSphere Portal V4.1 supported a two-level hierarchy (places, or pageGroups, and pages). In V4.1, theme JSPs (Navigation.jsp, Banner.jsp) provided navigation for places and pages. JSP developers could customize the theme and skin JSPs by using the <wps:page/> and <wps:pageGroup/> tags.

WebSphere Portal V4.2 introduced multilevel navigation, in which users and administrators could create pages that are nested within other pages. Themes developed for V4.1 do not provide navigation to nested nodes that were introduced in V4.2. The <wps:navigation/> tag was added to allow JSP developers to make use of the new hierarchy. The original <wps:page/> and <wps:pageGroup/> tags remained in V4.2 for compatibility reasons. By default in V4.2, if nested nodes exist for a user, a navigation column provides complete access to all nodes not accessible from the theme. This navigation column is created by LayeredContainer-V.jsp in the /skins directory. A Java scriptlet that invoked the Composition Model API was used to implement the nested navigation tree in LayeredContainer-V.jsp.

More changes were introduced in the portal organization for V5.0. The representation of places or pagegroups was removed entirely. Also, a new enhanced Object Model API replaced the Composition Model API for use in the navigation tree. Developers who used the Composition Model API in V4.2 should read Migrating from the V4.2 Composition Model API to the V5.0 Object Model, available at http://www.ibm.com/support/docview.wss?uid=swg27004260. We can also manipulate the appearance of the navigation tree by making changes to the images, colors, and other style settings that are used by the layered container.

WebSphere Portal V5.1 included several major changes. Portal JSPs should use the portal.tld tag library instead of the engine.tld tag library. The engine.tld tag library is still available, but only for backward compatibility prior to migration.

See Designing the portal to get a better understanding of how the portal page is constructed for this release of WebSphere Portal.

 

Updates to engine tags

The following tags, deprecated in WebSphere Portal V4.2, were removed in WebSphere Portal Versions 5.0 and 5.1:

  • <wps:pageGroupLoop/> Replaced by <wps:navigationLoop/>.

  • <wps:pageGroup/> This tag was mostly used with attribute="title" to obtain the title of a pagegroup to display in the navigation. Replaced by the <wps:title/> tag.

  • <wps:pageLoopInit/> Replaced by the maxPages attribute on <wps:navigationShift/>.

  • <wps:page/> This tag was mostly used with attribute="title" to obtain the title of a page to display in the navigation. Replaced by the <wps:title/> tag.

  • <wps:frameURL/> In WebSphere Portal, support for frames is removed completely.

  • <wps:pageLoop/> Replaced by <wps:navigationLoop/>.

  • <wps:pageLoopShift/> Replaced by <wps:navigationShift/>.

  • <wps:pageRender/> Removed in V5.0, but restored in V5.1 to replace <wps:compositionRender/>.

The <wps:URLSelect> tag, introduced in WebSphere Portal V4.2, was deprecated and replaced by the <URLGeneration/> tag in V5.1.

The following tags were added in WebSphere Portal Versions 5.0 and 5.1:

  • <wps:portletMoveRight />

  • <wps:portletMoveLeft />

  • <wps:portletMoveUp />

  • <wps:portletMoveDown />

  • <wps:portletDelete />

The following tags were changed in WebSphere Portal V5.0:

  • <wps:urlParent/> With the removal of <wps:pageGroupLoop/> and <wps:pageLoop/>, we cannot use <wps:urlParent/> to obtain the URL for a page or node in the portal. Instead, links to nodes are created within the <wps:navigationLoop/> by using either the wpsNavNode scripting variable or the <wps:navigationURL/> tag.

  • <wps:text/> and <wps:textParam/> tags

    4.1 rendering classes for these tags were removed (TextTag_old.class and TextParamTag_old.class). These classes used the body contents of the tag only if the specified key was not found in the specified resource bundle. Starting in V5.0, these tags use TextTag.class and TextParamTag.class, respectively. This change caused the behavior of these tags to change. For V5.0, if the JSPs provide content in the body of the <wps:text/> tag, it will now always be written to the page. The new classes were introduced in V4.2, but not used by default.

    Starting in V5.1, the <wps:text/> tag is still supported, but deprecated in favor of using the <i18n:bundle/> and <i18n:message/> tags of the JSP Standard Tag Library (JSTL).

  • <wps:navigation/>

    computeSelectionPath and useModelFromRequestAttributeNamed attributes removed

  • <wps:urlFind/>

    id attribute added

  • <wps:if/>

    Changes to attributes:

    • pageSelected (removed, replaced by nodeInSelectionPath)

    • pageGroupSelected (removed, replaced by nodeInSelectionPath)

    • pageAvailable (removed, replaced by navigationAvailable)

    • pageGroupAvailable (removed, replaced by navigationAvailable)

    • frameMode (removed, support for frames is removed completely)

    • showTools (added)

    • nodeInSelectionPath (added)

    • navigationAvailable (added)

    • portletSolo (added)

    • error (previously deprecated attribute has been removed)

  • <wps:unless/>

    Exact same changes as <wps:if/> tag.

Starting with WebSphere Portal V5.1, skins are rendered using the <wps:pageRender/> tag from the portal.tld tag library. This is in contrast to the <wps:compositionRender/> tag defined in the V5.0 engine.tld tag library. Skins called from the <wps:pageRender/> tag do not include the portal navigation tree. In WebSphere Portal V5.1, all navigation is handled by the theme JSPs.

The following table lists the tags of the engine.tld tag library and the replacements from the portal.tld tag library.

Tags from engine tag library Replacements in the portal tag library
<compositionRender/> <pageRender/>, but no corresponding attributes are available
<wps:captureContent/> none
<wps:componentRender/> <wps:layoutNodeRender/>
<wps:date/> use JSTL equivalent
<wps:time/> use JSTL equivalent
<wps:text/> use JSTL equivalent
<wps:popupMenu/> moved to portal-wml.tld tag library
<wps:popupMenuItem/> moved to portal-wml.tld tag library
<wps:popupMenuParam/> moved to portal-wml.tld tag library
<wps:popupMenuTemplate/> moved to portal-wml.tld tag library
<wps:urlGeneration/> Same tag, but pacCheck attribute deprecated and replaced by accessControlCheck
<wps:width/> no direct replacement, although <wps:layoutNodeProperty propertyName="width"/> could be used

The following new tags are introduced in the portal.tld tag library for WebSphere Portal V5.1.

 

Compatibility between tag libraries

During migration, it is possible to mix the use of tags from the engine tag library and the portal tag library in the themes, screens, and skins.

  • The <wps:compositionRender/> tag in a screen invoked from a portal.tld theme behaves like a <wps:pageRender/> tag.

  • The <wps:pageRender/> tag in a screen invoked from an engine.tld theme behaves like the <wps:compositionRender/> tag.

In the case that you have custom themes and skins that include some of the common JSPs provided by WebSphere Portal, use both tag libraries in the following circumstances.

  • Head.jsp uses the <wps:stateBase/> tag from the portal tag library. If the custom theme does not include a customized Head.jsp, update Head.jsp as follows.

    1. Import the tag library:

          <%@ taglib uri="/WEB-INF/tld/portal.tld" prefix="wps-fix" %>
      

    2. Change the prefix of the <wps:stateBase/> tag to match the new taglib.

          <wps-fix:stateBase/>
      

  • PlaceBarInclude.jsp uses the <wps:closePage/> tag from the portal tag library. If the custom theme does not include a customized PlaceBarInclude.jsp, update PlaceBarInclude.jsp as follows.

    1. Import the tag library:

          <%@ taglib uri="/WEB-INF/tld/portal.tld" prefix="wps-fix" %>
      

    2. Change the prefix of the <wps:closePage/> tag to match the new taglib.

          <wps-fix:closePage>
       ...
          </wps-fix:closePage>
      

  • AdminLinkBarInclude.jsp uses the <wps:adminNavHelper/> tag from the portal internal tag library (portal-internal.tld). This tag must be present in all JSPs used by administrative themes and portlets. For any customized versions of AdminLinkBarInclude.jsp, make sure you have the following tag library and tag at the beginning of the file.

        <%@ taglib uri="/WEB-INF/tld/portal-internal.tld" prefix="wps-internal" %>                              
        <wps-internal:adminNavHelper/>
    

Even though JSPs from different tag libraries can be mixed, this is only to support backward compatibility during migration. New themes, screens, and skins should be developed using the <wps:pageRender/> tag and the portal.tld.

 

Related Information