Les balises <portal-navigation/> sont utilisées pour implémenter des tâches de navigation telles que la génération d'URL et l'exploration du modèle de navigation du portail.
La section suivante contient des descriptions détaillées des balises JSP <portal-navigation/>.
- La balise uiNavigationModel permet au développeur JSP de se concentrer sur la construction de la navigation plutôt que sur les détails d'implémentation spécifiques au portail.
Par défaut, la balise uiNavigationModel répertorie les pages visibles dans le cadre de son itérateur. Lorsque l'option Afficher les pages masquées est sélectionnée dans la barre d'outils, elle répertorie également les pages masquées. Il existe un indicateur de masquage mobile spécial pour les pages. Le modèle vous permet également de spécifier une expression de classe d'appareil de test mobile, qui est utilisée pour déterminer si le système est affiché dans le cadre d'une demande mobile.
La balise uiNavigationModel rend le bean ELuiNavigationModel disponible sous forme d'une variable pouvant être spécifiée avec l'attribut
var. - Cette balise est utilisée pour modifier la langue active dans l'état de navigation dans lequel l'URL est générée.L'exemple de code suivant utilise cette balise pour définir la langue sur allemand.
<a href='<portal-navigation:url command="ChangeLanguage"><portal-navigation:urlParam name="locale" value="de"/></portal-navigation:url>'>Diese Seite in deutsch </a> - Cette balise permet d'ajouter des paramètres à l'URL parente. Les balises parent sont notamment
<portal-navigation:url/>et<portal-navigation:urlGeneration/>. Les paramètres ajoutés à la balise<urlGeneration/>apparaissent sous forme de paramètres de requête indéfinis, sauf si les attributs spécifiés dans<urlGeneration/>les définissent. La gestion des paramètres dépend du contenu de la cible de l'URL. Si l'URL est pointée sur une page, les paramètres sont visibles pour tous les portlets HCL de cette page. Les paramètres ne sont pas visibles pour les portlets standard si l'URL ne pointe pas spécifiquement sur de portlet.Les attributs sont les suivants :- nom
- Cet attribut est obligatoire. Indique le nom du paramètre.
- valeur
- Cet attribut est obligatoire. Indique la valeur du paramètre.
- type
- Cet attribut est facultatif. Il indique l'un des types suivants :
- query
- La paire nom-valeur est ajoutée à l'URL en tant que paramètre de requête. Il s'agit de la valeur par défaut si le type n'est pas spécifié.
- rendre
- Le paramètre est disponible sous forme de paramètre de rendu pour le portlet.
- action
- Le paramètre est disponible sous forme de paramètre d'action pour le portlet.
- Cette balise crée une URL vers des pages ou des portlets. Cette balise est conditionnelle. Si l'URL est introuvable, le corps de la balise n'est pas évalué. Dans le corps de la balise, la variable de script <% wpsURL %> peut être utilisée pour écrire l'URL directement dans le flux de sortie. Par exemple:
<a class="wpsToolBarLink" href='<% wpsURL.write(out); %>'>My page</a> - Crée une URL de portail selon l'attribut spécifié. Les attributs sont les suivants :
- home="public|protected"
- Cet attribut crée une URL pointée vers la page publique ou protégée (connectée) du portail.
- screen="screen_name"
- Cet attribut crée une URL pointée vers le nom de l'écran à afficher.
- command="LoginUser|LogoutUser|ShowTools"
- Cet attribut crée une URL émettant la commande vers le portail.
command="LoginUser"est utilisé pour le panneau de connexion etcommand="LogoutUser"est utilisé pour le bouton de déconnexion. Les paramètres"userid"et"password"doivent être pris en compte par l'URL de connexion.command="ShowTools"fait basculer la valeur de l'indicateur showTools. Pour obtenir un exemple, voir l'attribut"showtools"de balise<portal-logic:if/>. - commandParam="parameter_name"
- Cet attribut dirige le moteur du portail afin qu'il obtienne la commande réelle d'exécution auprès d'un paramètre de requête HTTP au lieu de l'obtenir directement par l'URL. Le nom du paramètre est la valeur de l'attribut commandParam. Cela peut être utile dans les situations où différentes commandes doivent être exécutées de manière conditionnelle et où une seule URL peut être spécifiée. C'est notamment le cas lorsque vous utilisez une balise
<form>avec une balise<select>. Cela permet d'utiliser le formulaire HTML sans recourir à JavaScript. Par exemple:
L'exemple de code précédent fonctionne, que le JavaScript soit activé ou désactivé.<form name="someFormName" method="GET" style="margin-bottom: 0" action='<portal-navigation:url commandParam="requestParamName"/>'> <select name="requestParamName" onchange="javascript: this.form.submit(); "> <portal-navigation:someLoop> <option value="<%= theUrl %>" >Some title goes here </portal-navigation:someLoop> </select> <noscript> <input type="image" border=0 align=absmiddle src='go.gif'/>Go </noscript> </form> - ssl="yes|no|true|false"
- Cet attribut crée une URL sécurisée (HTTPS).
- forceAbsolute = "true|false"
- Cet attribut est facultatif. Il indique si l'URL générée par cette balise doit être absolue ou non. Si vous définissez cet attribut sur true, des URL absolues sont appliquées ; dans ce cas, d'autres paramètres qui affectent la génération des URL peuvent être écrasés.
Exemple : L'exemple suivant présente une partie du formulaire de connexion qui utilise la balise<portal:url>pour traiter les zones d'entrée, l'ID utilisateur et le mot de passe.<FORM method="POST" action='<portal-navigation:url command="LoginUser"/>' enctype="application/x-www-form-urlencoded" name="LoginPage"> - Crée des URL pour les noeuds de navigation. Cette balise est utilisée dans le corps de la balise <portal-navigation:navigationLoop> et produit des liens pour le nœud de navigation courant en fonction de l'attribut type.
Les attributs sont les suivants :
- type
- Utilisez l'une des valeurs suivantes :
- type="link"
- Cet attribut crée l'URL permettant de modifier le noeud sélectionné.
- type="expand"
- Cet attribut crée une URL permettant de développer le noeud pour faire apparaître ses noeuds enfants. Cette balise est destinée à développer l'arborescence de navigation.
- type="collapse"
- Cet attribut crée une URL permettant de réduire le noeud afin de masquer les noeuds enfants. Cette balise est destinée à réduire l'arborescence de navigation.
- type="launch"
- Cet attribut crée une URL permettant de démarrer une page si toutes les conditions de lancement sont réunies pour le noeud de navigation ou si elle est similaire à l'URL définie par
type="link".
Remarque : Par défaut, l'état global des arborescences de navigation du portail est réduit (à quelques exceptions près, comme la navigation dans l'administration de portail). Vous pouvez configurer l'état par défaut des arborescences de navigation du portail de telle façon que tous les noeuds soient développés en affectant à la propriété de service de configuration de portailnavigation.expansion.defaultstatela valeurtrue. - varname
- Cet attribut spécifie un objet de type
com.ibm.portal.navigation.NavigationNodepour lequel une URL doit être générée. L'attribut est facultatif. - var
- Cet attribut spécifie le nom d'une variable de script qui est affichée dans le corps de la balise. L'attribut est facultatif. La variable affiche un objet qui implémente une URL
com.ibm.portal.DisposableURLpouvant être utilisée pour envoyer l'URL vers la sortie. Si le noeud de contenu auquel le noeud de navigation fait référence est une URL interne, le corps est évalué uniquement si la cible de l'URL interne est accessible. - forceAbsolute = "true|false"
- Cet attribut est facultatif. Il indique si l'URL générée par cette balise doit être absolue ou non. Si vous définissez cet attribut sur true, des URL absolues sont appliquées ; dans ce cas, d'autres paramètres qui affectent la génération des URL peuvent être écrasés.
- keepNavigationalState="true|false|auto"
- Si cet attribut est défini sur false, l'état de navigation courant (y compris l'ensemble des modes, états et paramètres d'affichage des portlets) n'est pas inclus dans l'URL et le portail est réinitialisé à son état par défaut. Si elle est définie sur true, qui est la valeur par défaut, l'état de navigation est inclus. Si cet attribut a pour valeur auto, la configuration détermine si l'état de navigation est inclus. Voir les descriptions pour
stateless.urls.enabledetgenerate.stateless.urlsdans le document Configuration Service.
Pour générer le titre ou la description d'un noeud de navigation, utilisez les balises
<portal-fmt:title/>ou<portal-fmt:description/>. Cette balise est utilisée dans les fichiers JSP de thème. - Cette balise est utilisée dans la navigation pour créer une URL permettant de faire défiler le contenu jusqu'à l'ensemble suivant de liens de page lorsque le nombre de pages disponibles dépasse maxPages. L'attribut by indique le nombre de liens de page à faire défiler. Si cette balise n'est pas utilisée, tous les liens de page relatifs au niveau actuel sont affichés.
Cette balise est imbriquée dans la balise <portal-navigation:navigation> et requiert des valeurs pour les attributs startLevel et stopLevel de la balise <portal-navigation:navigation> pour fonctionner correctement.
- Cette balise traverse le modèle de navigation. Cette balise est imbriquée dans la balise <portal-navigation:navigation/> lors de son utilisation. Cette balise indique la partie du balisage qui sera répétée une fois pour chaque noeud de navigation. Cette balise ne possède pas d'attribut. Le corps de cette balise est exécuté pour chaque noeud de navigation. Cette balise rend disponibles plusieurs variables de script permettant d'obtenir des informations relatives à la navigation. Ces variables de script sont uniquement accessibles au sein du corps de la balise.
- Cette balise initialise un ensemble d'objets et les rend disponibles par le biais de variables de script. Ces objets sont nécessaires pour le processus de rendu de la navigation. Les variables de script sont uniquement accessibles au sein du corps de la balise. Les paramètres des attributs
startLeveletstopLeveldéterminent si le contenu de la balise de navigation est évalué ou non. La balise de navigation utilise une branche transversale "en ordre" de l'arborescence de navigation pour sélectionner les noeuds.Les attributs sont les suivants :- startLevel
- Facultatif. Niveau auquel cette navigation doit commencer à afficher des informations. Si aucun niveau de début n'est indiqué, cette balise débute au noeud de navigation suivant les niveaux affichés par les autres fichiers JSP. Dans les autres cas, le niveau par défaut est 1.
- stopLevel
- Facultatif. Niveau auquel cette navigation doit cesser d'afficher des informations. Par défaut, tous les niveaux sont affichés.
- computeNumLevelsToDisplay
- Facultatif. Calcul du nombre de niveaux qui apparaissent réellement dans cette navigation. Lorsque cet attribut est défini sur true, une variable de script est rendue disponible à l'intérieur du corps de la balise de navigation nommée
wpsNumLevelsToDisplayde type java.lang.Integer. - scopeUniqueName
- Indique où commencer le rendu de la navigation du portail. La valeur prévue est un nom unique ou une représentation sous forme de chaîne de l'ID objet du noeud de navigation. Ce paramètre remplace également la balise
<portal:favoritesLoop/>pour l'activation de la fonctionnalité Organisation des favoris. L'exemple de code suivant montre comment utiliser<portal-navigation:navigation>avec l'attributscopeUniqueNamepour activer la fonctionnalité Organisation des favoris :<portal-navigation:navigation scopeUniqueName="wps.Favorites"> <portal-navigation:navigationLoop> <a href='<portal-navigation:navigationUrl type="link"/>' title='<portal-fmt:description varname="<%=wpsNavNode%>"/>'> <portal-fmt:title varname="<%=wpsNavNode%>"/> </a> </portal-navigation:navigationLoop> </portal-navigation:navigation>
- Cette balise est obsolète et doit être remplacée par la balise
<portal-navigation:navigation/>avec son attributscopeUniqueName.L'exemple de code suivant utilise cette balise pour créer la fonctionnalité Organiser les favoris. Pour pouvoir utiliser ce code, vous devez le placer dans les thèmes pour lesquels vous voulez que cette fonctionnalité soit disponible.<%@ taglib uri="/WEB-INF/tld/portal.tld" prefix="portal" %> <portal-logic:if loggedIn="yes" notScreen="SelfcareUserForm,SelfcareUserConf"> <table border="0" cellspacing="0" cellpadding="0" > <tr> <td align="<%=bidiAlignRight%>" valign="middle" dir="ltr" nowrap> <% boolean firstItem = true; %> <table border="0" cellpadding="0" cellspacing="0" <%= bidiDirAttr %> > <tr> <td valign="middle"> <form tabIndex="8" name="wpsFavoritesSelectionForm" method="GET" style="margin-bottom: 0"> action='<portal-navigation:url commandParam="favoritesCommand"/>'> <select name="favoritesCommand" onchange="document.location.href= this.options[this.selectedIndex].value">"javascript: if (this.options[this.selectedIndex].value.charAt(0) == '@') { window.open(this.options[this.selectedIndex].value.substring(1), '_blank'); this.selectedIndex=0; return false;} else { this.form.submit(); return false; }"> <option value='#' selected><wps:text key='link.favorites.myfavorites' bundle='nls.engine'/> <portal-logic:if pageBookmarkable="true"> <option value='<portal-navigation:url command="AddBookmark" alias="wps.My Favorites"/>'><portal-fmt:text key='link.favorites.add' bundle='nls.engine'/> </portal-logic:if> <portal-navigation:urlGeneration contentNode="wps.Organize Favorites" portletWindowState="Normal" pacCheck="NoCheck"> <option value='<% wpsURL.write(escapeXmlWriter); %>' > <portal-fmt:text key='link.favorites.orgainize' bundle='nls.engine'/> </portal-navigation:urlGeneration> <option value='#'>------------ <portal:favoritesLoop> <% // wpsFavoritesURL is null for folders in the list of favorites if (wpsFavoritesURL != null) { // Check the favorite type. If it is an external URL, add a symbol to the URL // so the JavaScript on the select can detect when to open a new window // wpsFavoritesType may be null. wpsFavoritesType=1 means external URL if ("EXTERNALURL".equals(wpsFavoritesType)) wpsFavoritesURL = "@" + wpsFavoritesURL; //Phone number links are only supported on WML devices... and favorites are not markup-specific. // wpsFavoritesType may be null. wpsFavoritesType=2 means Phone Number if (!"2".equals(wpsFavoritesType)) { %> <option value="<%= wpsFavoritesURL %>"> <% for (int favSpace=1; favSpace < wpsFavoritesLevel.intValue(); favSpace++) {%> <% } %><%= wpsFavoritesTitle %> <% } } else { %> <option value="#" ><% for (int favSpace=1; favSpace < wpsFavoritesLevel.intValue(); favSpace++) {%> <% } %>--<%= wpsFavoritesTitle %>-- <% } %> </portal:favoritesLoop> </select> <noscript> <input type="image" border="0" align="absmiddle" src='<portal-logic:urlFindInTheme file="go.gif"/>'/> <span class="wpsPlaceBarLink" > <portal-fmt:text key="go" bundle="nls.button"/></span> </noscript> </form> </td> </tr> </table> </td> </tr> </table> </portal-logic:if>