Conversión de fragmentos de portlet a un documento HTML

Un portlet sólo entrega la salida de fragmentos mientras que un servlet generalmente entrega la salida de documentos. No obstante, puede utilizar el servlet PortletServingServlet, lo cual es similar al servlet FileServingServlet, para direccionar portlets como servlets.

Acerca de esta tarea

Se aplica un filtro de servlet de documentos, el filtro DefaultFilter al servlet PortletServingServlet para que devuelva el contenido del portlet incluido en un documento. Este filtro sólo se aplica a las solicitudes y no a las inclusiones o envíos realizados mediante el método RequestDispatcher. Un filtro de servlet que se utiliza para incorporar el contenido del portlet en un documento denominado el filtro de servlet de documentos. Puede definir filtros de servlet de documentos adicionales en un archivo .xml. El atributo FilterRequestHelper incluido en com.ibm.wsspi.portletcontainer.util se proporciona para ayudar a los filtros de servlets de documentos a analizar una solicitud relacionada con la información del portlet y la cadena de filtros. Se utiliza para dar soporte a los títulos de portlets dinámicos, como un marcador para la redirección de filtros de servlets de documentos y para garantizar que la conversión del documento se ha completado una vez.

Procedimiento

  1. Añada un nuevo filtro de servlet de documento. Los filtros son una función del servidor, por lo tanto, se deben instalar todos los filtros en el servidor para que utilicen la posibilidad de filtro del servidor. Los filtros han de estar disponibles en cualquier directorio de clases o de biblioteca a nivel de servidor. Debe registrar también el filtro en un archivo plugin.xml dentro de la raíz de un archivo JAR (Java™ Archive). El siguiente es un ejemplo de cómo registrar el filtro en un archivo 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. Opcional: Establezca los títulos de portlet dinámicos proporcionando el título dinámico como un atributo de solicitud. El servlet PortletServingServlet da soporte a los títulos de portlets dinámicos proporcionado el título dinámico como un atributo de solicitud, FilterRequestHelper.DYNAMIC_TITLE. Este atributo devuelve el título del portlet dinámico si se ha establecido mediante el portlet, de lo contrario devuelve el título de portlet estático del archivo portlet.xml, si se ha definido.

    DYNAMIC_TITLE = ‘javax.portlet.title'

    DefaultFilter utiliza este atributo de solicitud para establecer el título de documento mientras convierte el fragmento en un documento. Si desea que el filtro soporte el almacenamiento en antememoria del navegador o los títulos de portlet dinámicos, debe almacenar en la antememoria el contenido completo del portlet.
  3. Especifique el manejo de la antememoria para el portlet que presenta la llamada para soportar el título dinámico. Redirección de los filtros del servlet de documentos

    Un filtro de servlet puede establecer un marcador como atributo de solicitud, FilterRequestHelper.REDIRECT. Este marcador asegura que el contenedor de portlets devuelva el filtro de servlet de documentos después de llamar a la acción del portlet antes de cualquier llamada al método render. Debe definir las siguientes constantes, REDIRECT = ‘com.ibm.websphere.portlet.action' y REDIRECT_VALUE = 'redirect'. DefaultFilter utiliza este atributo de solicitud para poder manejar de modo especial la antememoria para la llamada a render del portlet que permite dar soporte al título dinámico.

  4. Convierta el fragmento del portlet en un documento válido. La conversión del documento sólo se puede completar una vez. Por lo tanto, cada filtro de servlet de documentos debe garantizar que el fragmento anteriormente no se ha convertido en un documento. Si el filtro de servlet de documento convierte el fragmento en un documento, se debe establecer el atributo de solicitud FilterRequestHelper.DOCUMENT en FilterRequestHelper.DOCUMENT_VALUE. Este atributo de solicitud marca si es necesario completar la conversión. Las constantes siguientes se han definido, DOCUMENT = ‘com.ibm.websphere.portlet.filter' y DOCUMENT_VALUE = 'document'. DefaultFilter utiliza este atributo de solicitud para comprobar si se debe convertir el fragmento en un documento HTML (Hypertext Markup Language). Por ejemplo, esto permite colocar otro filtro de servlet de documentos delante para convertir el fragmento en un documento WML (Wireless Markup Language) válido.

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tport_docfilter
File name: tport_docfilter.html