Génération d'URL dans HCL Portal
Générer correctement des URL de portail est l'une des tâches les plus importantes lors de la programmation d'une application basée sur HCL Portal. Plusieurs outils et techniques de programmation permettent de générer des URL HCL Portal dans du code personnalisé. La section ci-après présente les outils de programmation disponibles et indique les recommandations d'utilisation pour chacun d'eux.
Types d'URL de portail
- URL de rendu
- Ce type d'URL permet d'extraire une vue générale d'une page de portail. Il n'inclut pas d'action de portlet spécifique et n'entraîne pas de changement d'état côté serveur. Une URL de rendu correspond à une opération HTTP GET et est de type idempotent, ce qui signifie qu'elle peut être exécutée plus d'une fois sans cause de dommage. La navigation de page HCL Portal normale est constituée d'URL de rendu.
- URL d'action
- Les URL d'action sont utilisées pour les activités au sein des portlets. Ces URL correspondent à des demandes HTTP POST ou PUT et sont souvent de type non idempotent, ce qui signifie qu'elles ne doivent être exécutées qu'une seule fois. En général, une URL d'action cible un portlet spécifique et peut entraîner des changements d'état côté serveur. L'action de portlet et le portlet sur lequel l'action est ciblée sont transmis en tant que paramètres dans le document d'état de navigation.
- URL conviviales
- Les URL conviviale comportent des chaînes lisibles décrivant le chemin d'accès à une page de portail. Ces chaînes lisibles correspondent aux noms d'URL conviviale qui sont associés aux pages ou aux libellés. En outre, l'URL peut également comporter des jetons de chemin de contenu conviviaux. Ces derniers sont des chaînes lisibles qui décrivent le chemin de zone de site vers la bibliothèque de contenu Web associée à la page. Remarque : Une URL conviviale peut également inclure un document d'état de navigation codé. Si ce n'est pas le cas, il s'agit d'une URL conviviale sans état. Il existe une API de programmation spécialement conçue pour fonctionner avec des URL conviviales.
- URL de redirection
- Les URL personnalisées sont similaires aux URL conviviales sans état ; elles sont lisibles et ne comportent pas de document d'état de navigation codé. Toutefois, les URL personnalisées ne sont pas liées aux noms d'URL conviviale associés aux pages de portail. Elles sont destinées à servir d'alias simples, faciles à mémoriser et faciles à saisir manuellement, le cas échéant. Les URL personnalisées sont similaires aux URL mappées qui ont été introduites dans les éditions précédentes d'HCL Portal. Elles sont uniquement destinées à servir de point d'entrée initial et ne sont pas permanentes dans la barre d'adresse du navigateur après le début de l'interaction avec le site de portail. Il existe une API de programmation spécialement conçue pour fonctionner avec des URL personnalisées.
- URL de partie de contenu
- Les URL de partie de contenu constituent un mécanisme de liaison tardive qui cible le contenu au lieu des artefacts de portail, tels que les pages. Ils utilisent un point d'entrée d'URL différent dans HCL Portal (en général, il s'agit de mypoc ou mycontenthandler au lieu de myportal). Il existe une API de programmation conçue pour fonctionner avec les URL de partie de contenu.
Méthodes de génération d'URL de portail
La complexité d'une URL HCL Portal rend son codage manuel difficile. Par conséquent, n'essayez pas de créer des URL de portail par concaténation de chaîne. L'intention liée à la conception est de faire en sorte que la plupart des URL de portail comportant des références circulaires soient générées dans le code lors de l'exécution, afin d'éviter l'apparition de liens rompus et la gestion manuelle de liens dans un site basé sur un portail.
- La méthode de balises JSP de portail est utilisée dans les fichiers JSP de thème et d'habillage.
- L'API de portlet JSR 286 et les balises JSP correspondantes. Cette méthode de génération d'URL prend en charge la plupart des exigences de génération d'URL dans un portlet standard.
- Ou bien, lorsque vous modifiez un portlet existant et qu'une mise à niveau est impossible, la précédente API de portlet JSR 168 est utilisée.
- L'API de portlet HCL n'est plus prise en charge. Les portlets précédents qui sont écrits sur cette API doivent être migrés vers la norme en cours.
- Paramètres de rendu public définis par HCL Portal. Cette méthode peut prendre en charge un grand nombre de cas d'utilisation qui nécessitaient l'API d'état de navigation.
- La méthode d'API d'URL conviviale a été conçue spécialement pour les cas d'utilisation qui impliquent des URL conviviales, y compris les URL qui doivent être sans état (ne comportent pas de document d'état de navigation codé).
- La méthode d'API d'URL PoC a été spécialement conçue pour créer des URL de contenu.
- La méthode d'API d'URL personnalisée a été spécialement conçue pour fonctionner avec des URL personnalisées.
- La méthode d'API d'état de navigation constitue l'outil de programmation général le plus complet pour la génération d'URL, mais elle est celle qui nécessite une connaissance approfondie et le plus de compétences en matière de programmation.
Lorsque vous créez des portlets coopératifs qui nécessitent des communications inter-portlet, la messagerie inter-portlet peut être transmise par le biais des URL qui sont générées. Les paramètres de rendu pris en charge par JSR 286 permettent d'implémenter cette technique, mais d'autres outils de programmation sont également fournis. Les techniques JSR 286 destinées aux portlets coopératifs et les autres outils de programmation sont décrits plus en détail dans la section Communication des portlets. Parmi ces autres outils de programmation, citons par exemple l'API de portlet coopératif pour l'interopérabilité entre les portlets JSR 286 et JSR 168 portlets.
Tâche (de la plus simple à la plus complexe) | Méthode de génération d'URL |
---|---|
Création de liens de navigation de pages entre les pages de portail au niveau du thème. Par exemple, la navigation de pages à onglets standard. |
Ces URL sont généralement des URL de rendu simple. Dans les fichiers JSP, utilisez les balises JSP <portal-navigation/> . Pour plus d'informations sur la programmation d'un thème Portal, voir la section Développement de thèmes et d'habillages. |
Un portlet JSR 286, autonome (aucune communication inter-portlet requise), qui génère des URL d'action vers lui-même et définit ses propres paramètres de rendu. |
|
Portlet JSR 286, qui nécessite une communication interportlet avec un autre portlet JSR 286, mais aucune navigation de pages (la vue de portail reste sur la page en cours). |
L'utilisation du support de paramètre de rendu JSR 286 peut suffire. Toutefois, il existe d'autres techniques. Pour plus d'informations, voir la section Communication de portlet. |
Portlet JSR 286 qui doit interopérer avec un portlet JSR 168. |
Un portlet JSR 168 qui fonctionnait avec d'autres portlets via une communication interportlet est écrite de manière à utiliser l'API de portlet coopératif, également appelée courtier de propriétés. Le courtier de propriétés a été une extension HCL vers la spécification JSR 168. JSR 286 a introduit le modèle d'événement de portlet, lequel a remplacé le courtier de propriétés. Les portlets JSR 286 et les portlets JSR 168 peuvent interopérer si certaines conditions sont remplies. Pour plus d'informations, voir la section Interopérabilité entre des événements de portlet JSR 286 et des portlets coopératifs JSR 168. |
Portlet JSR 286 qui doit :
|
A compter de Portal 8.5 CF05, utilisez les paramètres de rendu public définis par HCL Portal pour tous ces cas d'utilisation, etc. Ces paramètres de rendu fournissent différents aspects du contexte de demande en cours sous forme de paramètres de rendu public normaux dans un espace de nom spécifié par HCL Portal.
Notes :
L'espace de nom du paramètre de rendu public spécifié par HCL portal est http://www.ibm.com/xmlns/prod/websphere/portal/publicparams (disponible sous la forme NAMESPACE_URI). Les éléments suivants sont les paramètres de rendu public spéciaux pris en charge par HCL Portal :
Il existe également une API libre-service de génération d'URL Portal. Cette API libre-service ne prend en charge que les URL de rendu. Aucun changement d'état (URL d'action) ne peut être généré à l'aide de cette API. Les éléments suivants sont les classes de clés dans cette API :
Il existe un ensemble équivalent de balises JSP pour l'API pratique de génération d'URL. Pour plus d'informations, voir Balises JSP pour les portlets standard. Exemple de création d'une URL de rendu à l'aide de la balise Convenience API : <portlet-ext:portalRenderURL> . |
URL conviviale |
Une URL conviviale également appelée nom d'URL conviviale est le nom lisible d'une page de portail. Elle est définie en tant qu'attribut de la page, et chaque page peut avoir une URL conviviale au maximum. Notes :
Pour utiliser l'API d'URL conviviale, vous devez obtenir une instance FriendlyURLFactory . Selon le type de code que vous écrivez, vous pouvez obtenir une instance FriendlyURLFactory de deux manières différentes :
Une fois que vous disposez d'une instance |
URL personnalisée |
Une URL personnalisée est une URL simple et facile à mémoriser qu'un utilisateur peut saisir manuellement. Les URL personnalisées sont gérées par le Webmaster à l'aide des outils d'administration d'HCL Portal, tels que la barre d'outils, les portlets administratifs ou le scriptage XMLAccess. Cependant, lorsque vous affichez une réponse, il peut s'avérer nécessaire de générer un lien d'URL personnalisée. La section ci-après explique comment utiliser l'API d'URL personnalisée pour obtenir une instance VanityURLNode qui peut être utilisée afin d'afficher un lien URL personnalisée. Selon le type de module de code que vous développez, utilisez l'une des 3 méthodes pour accéder et utiliser l'API d'URL personnalisée. Remarque : Prenez soin de sélectionner le module d'interface SPI approprié pour le code en cours de développement. La documentation d'interface nécessaire figure dans le Javadoc sur l'interface SPI HCL Portal.
VanityURLNode au moyen de l'une des procédures appropriées, vous pouvez appeler les différentes méthodes de cette interface pour générer une représentation rendue de l'URL personnalisée :
|
Créez, mettez à jour ou supprimez des URL personnalisées. |
Si vous écrivez du code pour créer, mettre à jour ou supprimer des URL personnalisées au lieu de les lire et de les afficher, utilisez les API suivantes :
|
Un portlet JSR 286 qui doit générer une URL d'action pour un second portlet spécifique ou dans n'importe quel autre cas d'utilisation non mentionné ici. |
API d'état de navigation |
URL de contenu |
Une URL d'élément de contenu est une URL qui cible un objet DataSource ou ResolutionService dans l'infrastructure du programme de résolution. Avec ces éléments DataSource ou ResolutionService, l'API d'URL d'élément de contenu aide le programmateur à créer une URL qui conduit l'infrastructure du programme de résolution à démarrer l'élément DataSource ou ResolutionService approprié. Pour gérer des URL d'élément de contenu, procurez-vous une instance com.ibm.portal.resolver.acessors.url.PocURLFactory. Tout comme pour d'autres API d'URL, le code permettant d'obtenir une instance URLFactory varie selon que vous écrivez un portlet, un code à thème ou que vous exécutez déjà un code dans l'infrastructure du programme de résolution.
Une fois que vous avez obtenu une instance PocURLFactory :
|