Capacité d'adressage de l'adresse URL du portlet
Vous pouvez envoyer une requête à un portlet directement par l'intermédiaire d'une adresse URL (Uniform Resource Locator) pour afficher son contenu sans regroupement de portail. Le servlet PortletServingServlet enregistre chaque application Web contenant des portlets. Il est similaire au servlet FileServingServlet du conteneur Web qui sert les ressources. Le servlet PortletServingServlet prend en charge l'affichage direct de portlets dans une page de navigateur complète par l'intermédiaire d'une requête URL.
http://<host>:<port>/<context-root>/<portlet-name> For example,
http://localhost:9080/portlets/TestPortlet1
La racine de contexte identifie le fichier archive d'application Web (WAR)
qui contient le portlet. Le nom du portlet identifie de façon unique le portlet au sein de l'application
Web contenue dans le fichier WAR. Le servlet DefaultDocumentFilter ne prend en charge que l'encodage HTML, UTF8 et la forme d'adresse URL de base.Vous ne pouvez afficher qu'un portlet à la fois à l'aide du servlet PortletServingServlet. Si vous souhaitez regrouper plusieurs portlets sur la page, vous devez utiliser la bibliothèque de balises de regroupement. Reportez-vous à l'article consacré au regroupement des portlets à l'aide de pages JavaServer pour plus d'informations.
Du fait qu'un portlet ne distribue que des fragments de sortie alors qu'un servlet distribue généralement une sortie de document, un mécanisme, appelé filtre PortletDocumentFilter, est introduit pour convertir le fragment en document. Par défaut, le filtre PortletDocumentFilter ne prend en charge que la conversion de langage HTML. La conversion est implémentée à l'aide d'un filtre de servlet avant que le servlet PortletServingServlet ne soit démarré pour renvoyer le contenu intérieur du portlet d'un document. Ce filtre de servlet de document par défaut ne s'applique qu'aux requêtes d'adresses URL. Il n'est pas destiné aux inclusions et aux réacheminements utilisant la méthode RequestDispatcher. Vous pouvez créer des filtres de servlet pour prendre en charge d'autres filtres de servlet de documents de marquage supplémentaires. Pour plus d'informations, reportez-vous à l'article consacré à la conversion des fragments de portlet en document HTML.
Le servlet PortletServingServlet ne conserve pas les préférences du portlet dans un fichier XML ou une base de données. Il place les préférences du portlet directement dans un cookie pour sauvegarder les préférences de façon permanente. Voir l'article sur les préférences de portlet pour plus d'informations sur le changement du comportement.
Syntaxe d'adresse URL de portlet
http://host:port/context/portlet-name [/portletwindow[/ver [/action |
/resource[/id=custom-id][/cacheability]] [/mode] [/state] [rparam][/?name]]]
Toute structure URL différente de celle-ci produit une exception com.ibm.wsspi.portletcontainer.InvalidURLException. Les chaînes vides ne sont pas autorisées en tant que valeurs de paramètres et entraînent une exception InvalidURLException. La liste suivante regroupe des paramètres valides :- http:// host:port/context/nom-portlet
- Il s'agit de l'adresse URL minimale pour accéder à un portlet. Une fenêtre de portlet par défaut nommée "défaut" est créée. La variable nom-portlet est sensible à la casse.
- /fenêtreportlet
- Ce paramètre identifie la fenêtre du portlet. Vous devez définir ce paramètre si vous choisissez d'ajouter davantage d'informations de contexte de portail à l'adresse URL.
- /ver=majeur.mineur
- Ce paramètre optionnel est utilisé pour définir la version de API de portlet utilisée. Vous devez définir ce paramètre si vous choisissez d'ajouter davantage d'informations de contexte de portail à l'adresse URL. Seules les versions "1.0" et "2.0" sont prises en charge. Toute autre version peut engendrer une exception InvalidURLException.
- /action
- Ce paramètre est requis si vous appelez la méthode d'action du portlet. Le paramètre action entraîne l'appel du processus d'action du portlet. Une fois l'action terminée, un réacheminement est automatiquement émis pour appeler le processus de rendu. Pour contrôler le processus de rendu postérieur, un filtre de servlet de document peut définir un attribut de requête portant le nom "com.ibm.websphere.portlet.action" et ayant pour valeur "redirect" pour spécifier que le servlet PortletServingServlet doit être renvoyé directement après une action sans que le processus de rendu ne soit appelé.
- /mode=affichage | édition | aide | mode-personnalisé
- Ce paramètre facultatif définit le mode du portlet qui est utilisé pour afficher le portlet. Le mode par défaut est "affichage". La valeur n'est passensible à la casse. Par exemple "Affichage", "affichage" ou "AFFICHAGE" appellent le même mode.
- /state=normal | agrandi | réduit | état-personnalisé
- Ce paramètre facultatif définit l'état de la fenêtre qui est utilisée pour afficher le portlet. L'état par défaut est "normal". La valeur n'est pas sensible à la casse. Par exemple "Normal", "normal" ou "NORMAL" appellent le même état.
- * [ /rparam=nom *[=valeur] ]
- Ce paramètre facultatif définit les paramètres de rendu du portlet. Reproduisez cette chaîne de paramètres pour renseigner plusieurs paramètres de rendu. Par exemple, /rparam=invitation/rparam=days=Monday=Tuesday.
- ?name=value&name2=value2 …
- Les paramètres de requête peuvent suivre de manière facultative. Il ne sont pas pris en charge de manière explicite par le conteneur du portlet, mais ils n'entraînent pas l'invalidation du format de l'adresse URL.
- /action | /ressource
- Ce paramètre définit les méthodes du portlet appelé. Les valeurs valides sont non, action ou paramètre ressources. Aucune méthode spécifique définie n'appelle la méthode d'affichage. Le paramètre ressources est pris en charge uniquement pour les portlets JSR 286.
- /ressource [/id=custom-id] [/capacité de mise en mémoire cache=cacheLevelFull | cacheLevelPortlet | cacheLevelPage]
- Ce paramètre permet de définir la méthode du portlet à appeler. Aucun réacheminement n'a lieu. Aucune autre méthode du portlet n'est appelée. Pour contrôler le paramètre ressources, vous pouvez ajouter un paramètre d'ID supplémentaire afin de fournir un identifiant de serveur de ressources transmis au portlet. Le paramètre de capacité de mise en mémoire cache définit le niveau de cache de cette adresse URL de ressources. Ce paramètre est pris en charge uniquement avec les portlets JSR 286.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
- http:// localhost:9080/sample/WorldClock
- http:// localhost:9080/sample/WorldClock/myPortlet/ver=1.0/mode=edit/rparam=timezone=UTC
- http:// localhost:9080/sample/WorldClock/myPortlet/ver=1.0/action/state=maximized?timezone=UTC
- http://localhost:9080/sample/WorldClock/myPortlet/ver=2.0/resource/id=somePicture.jpg
![[IBM i]](../images/iseries.gif)
- http:// nom.de.votre.serveur:9080/sample/WorldClock
- http:// nom.de.votre.serveur:9080/sample/WorldClock/myPortlet/ver=1.0/mode=edit/rparam=timezone=UTC
- http:// nom.de.votre.serveur:9080/exemple/WorldClock/myPortlet/ver=1.0/action/state=maximized?timezone=UTC
- http://nom.de.votre.serveur:9080/sample/WorldClock/myPortlet/ver=2.0/resource/id=somePicture.jpg