Conversion de fragments de portlet en un document HTML

Un portlet n'a pour résultat qu'un fragment alors qu'un servlet a généralement pour résultat un document. Vous pouvez toutefois utiliser le servlet PortletServingServlet, semblable au servlet FileServingServlet, pour adresser des portlets en tant que servlets.

Pourquoi et quand exécuter cette tâche

Un filtre de servlet de document par défaut, le filtre DefaultFilter filter, est appliqué au servlet PortletServingServlet pour renvoyer le contenu du portlet à l'intérieur d'un document. Ce filtre ne s'applique qu'aux requêtes, pas aux inclusions ou réacheminements en utilisant la méthode RequestDispatcher. Un filtre de servlet utilisé pour intégrer le contenu d'un portlet dans un document est appelé filtre de servlet de document. Vous pouvez définir des filtres de servlet de document supplémentaires dans un fichier .xml. L'attribut FilterRequestHelper à l'intérieur de com.ibm.wsspi.portletcontainer.util est fourni pour aider les filtres de servlet de document à analyser une requête la chaîne de filtres et les informations de portlet. Il sert de soutien dynamique aux titres de portlet, en tant que marqueur de réacheminement des filtres de servlet de document et s'assure que la conversion du document est achevée.

Procédure

  1. Ajoutez un nouveau filtre de servlet de document. La capacité du filtre est une fonction du serveur, tous les filtres doivent donc être installés dans le serveur pour utiliser la capacité de filtre du serveur. Les filtres doivent être disponibles dans toutes les classes ou dans le répertoire de bibliothèques au niveau d'un serveur. Vous devez aussi déclarer le filtre dans un fichier plugin.xml dans la racine d'un fichier JAR (fichier d'archive Java™). L'exemple suivant indique comment déclarer le filtre dans un fichier plugin.xml.
    <?xml version="1.0" encoding="UTF-8"?>
    <?eclipse version="3.0"?>
    <plugin id="sample.plugin" name="Customer_Plugin" provider-name="Customer" version="1.0.0">
      <extension point="com.ibm.ws.portletcontainer.portlet-document-filter-config">
        <portlet-document-filter class-name="sample.filter.CustomFilter" order="200" />
      </extension>   
    </plugin>
  2. Facultatif : Définissez des titres de portlet dynamiques en indiquant le titre dynamique sous forme d'attribut de requête. Le servlet PortletServingServlet prend en charge des titres de portlet dynamiques en fournissant le titre dynamique en tant qu'attribut de requête, FilterRequestHelper.DYNAMIC_TITLE. Cet attribut renvoie le titre de portlet dynamique s'il a été défini par le portlet, sinon il renvoie le titre de portlet statique du fichier portlet.xml qui est défini, le cas échéant.

    DYNAMIC_TITLE = ‘javax.portlet.title'

    Le filtre DefaultFilter utilise cet attribut de requête pour définir le titre du document tout en convertissant le fragment en document. Si le filtre doit prendre en charge la mise en cache du navigateur ou les titres de portlet dynamiques, vous devez mettre en cache la totalité du contenu du portlet.
  3. Spécifiez un traitement de mise en cache spécial de l'appel d'affichage du portlet afin de prendre en charge un titre dynamique. Réacheminement des filtres de servlet de document

    Un filtre de servlet de document peut définir un marqueur en tant qu'attribut de requête, FilterRequestHelper.REDIRECT. Ce marqueur garantit que le conteneur du portlet renvoie au filtre du servlet du document après l'appel de l'action du portlet, avant tout appel d'affichage. Vous devez définir les constantes suivantes : REDIRECT = ‘com.ibm.websphere.portlet.action' etREDIRECT_VALUE = 'redirect'. Le filtre DefaultFilter utilise cet attribut de requête pour assurer un traitement de mise en cache spécial de l'appel d'affichage du portlet afin de prendre en charge un titre dynamique.

  4. Convertissez le fragment du portlet en document valide. Le document doit être converti une fois seulement. Chaque filtre de servlet de document doit donc s'assurer que le fragment n'a pas déjà précédemment été converti en document. Si le filtre de servlet de document convertit le fragment en un document, l'attribut de requête FilterRequestHelper.DOCUMENT doit être associé àFilterRequestHelper.DOCUMENT_VALUE. Cet attribut de requête indique si la conversion doit être réalisée. Les constantes suivantes sont définies, DOCUMENT = ‘com.ibm.websphere.portlet.filter' et DOCUMENT_VALUE = 'document'. Le filtre DefaultFilter utilise cet attribut de requête pour vérifier s'il doit convertir le fragment en un document HTML (Hypertext Markup Language). Par exemple, celui-ci permet à un autre filtre de servlet de document spécifié devant, de convertir à la place le fragment en un document WML (Wireless Markup Language) valide.

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tport_docfilter
Nom du fichier : tport_docfilter.html