Portletfragmente in ein HTML-Dokument konvertieren

Ein Portlet stellt nur Fragmente bereit, wohingegen ein Servlet gewöhnlich Dokumente ausgibt. Mit dem Servlet PortletServingServlet, das dem Servlet FileServingServlet gleicht, können Sie Portlets jedoch wie Servlets adressieren.

Informationen zu diesem Vorgang

Auf das Servlet PortletServingServlet wird ein Standarddokumentservletfilter angewendet, damit der Inhalt des Portlet in einem Dokument zurückgegeben wird. Dieser Filter gilt nur für Anforderungen, und nicht für Includes oder Forwards, die die Methode RequestDispatcher verwenden. Ein Servletfilter, der dazu verwendet wird, den Inhalt des Portlet in ein Dokument einzubetten, wird als Dokumentservletfilter bezeichnet. Sie können in einer Datei mit der Erweiterung .xml weitere Dokumentservletfilter definieren. Das in com.ibm.wsspi.portletcontainer.util bereitgestellte Attribut "FilterRequestHelper" hilft den Dokumentservletfiltern bei der Analyse einer Anforderung in Bezug auf Filterketten und Portletinformationen. Es wird für die Unterstützung dynamischer Portlettitel als Kennzeichnung für die Umleitung für Dokumentservletfilter verwendet. Außerdem stellt es sicher, dass die Dokumentkonvertierung einmal durchgeführt wird.

Vorgehensweise

  1. Fügen Sie einen neuen Dokumentservletfilter hinzu. Die Filterfunktion ist ein Server-Feature. Deshalb müssen alle Filter im Server installiert werden, damit die Filterfunktion des Servers verwendet werden kann. Die Filter müssen in allen Klassen und im Bibliotheksverzeichnis auf Serverebene verfügbar sein. Außerdem müssen Sie den Filter in einer Datei plugin.xml im Stammverzeichnis einer JAR-Datei registrieren. Das folgende Beispiel zeigt, wie der Filter in einer Datei plugin.xml registriert wird.
    <?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. Optional: Definieren Sie die dynamischen Titel für Portlets, indem Sie den dynamischen Titel als Anforderungsattribut angeben. Das Servlet "PortletServingServlet" unterstützt dynamische Portlettitel, indem es den dynamischen Titel als Anforderungsattribut (FilterRequestHelper.DYNAMIC_TITLE) bereitstellt. Dieses Attribut gibt den dynamischen Portlettitel zurück, wenn es vom Portlet gesetzt wurde. Andernfalls wird der statische Portlettitel der Datei portlet.xml, sofern definiert, zurückgegeben.

    DYNAMIC_TITLE = ‘javax.portlet.title'

    DefaultFilter verwendet dieses Anforderungsattribut, um den Dokumenttitel zu setzen, während das Fragment in ein Dokument konvertiert wird. Wenn der Filter Browser-Caching oder dynamische Portlet-Titel unterstützen soll, müssen Sie den vollständigen Portletinhalt zwischenspeichern.
  3. Legen Sie die Cachehandhabung fest, damit der Aufruf für die Portletwiedergabe dynamische Titel unterstützt. Umleitung für Dokumentservletfilter.

    Ein Dokumentservletfilter kann eine Markierung als Anforderungsattribut "FilterRequestHelper.REDIRECT" setzen. Diese Markierung stellt sicher, dass der Portletcontainer die Steuerung an den Dokumentservletfilter zurückgibt, nachdem die Portletaktion vor den Übergabeaktionen aufgerufen wurde. Sie müssen die folgenden Konstanten definieren: REDIRECT = ‘com.ibm.websphere.portlet.action' und REDIRECT_VALUE = 'redirect'. DefaultFilter verwendet dieses Anforderungsattribut zur Unterstützung der speziellen Cacheverarbeitung für den Portletübergabeaufruf zur Unterstützung dynamischer Titel.

  4. Konvertieren Sie das Portletfragment in ein gültiges Dokument. Dokumentkonvertierungen dürfen nur einmal ausgeführt werden. Deshalb muss jeder Dokumentservletfilter sicherstellen, dass das Fragment zuvor noch nicht in ein Dokument konvertiert worden ist. Wenn der Dokumentservletfilter das Fragment in ein Dokument konvertiert, muss das Anforderungsattribut "FilterRequestHelper.DOCUMENT" auf "FilterRequestHelper.DOCUMENT_VALUE" gesetzt werden. Dieses Anforderungsattribut gibt Aufschluss darüber, ob die Konvertierung noch durchgeführt werden muss. Die folgenden Konstanten werden definiert: DOCUMENT = ‘com.ibm.websphere.portlet.filter' und DOCUMENT_VALUE = 'document'. DefaultFilter verwendet dieses Anforderungsattribut, um zu prüfen, ob das Fragment in ein HTML-Dokument (Hypertext Markup Language) konvertiert werden muss. Damit hat ein anderer Dokumentservletfilter beispielsweise vorab die Möglichkeit, das Fragment in ein gültiges WLM-Dokument zu konvertieren.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tport_docfilter
Dateiname:tport_docfilter.html