Configuración de aplicaciones Struts y Tiles

Utilice esta tarea para almacenar en memoria caché las aplicaciones Struts y Tiles.

Antes de empezar

Antes de configurar la colocación en memoria caché de Struts y Tiles, debe disponer de una aplicación desarrollada. Obtenga más información sobre cómo desarrollar aplicaciones Struts y Tiles en el sitio web de Apache Struts Web Application Framework.

Acerca de esta tarea

Utilice esta tarea cuando desee almacenar en memoria caché datos en aplicaciones Struts y Tiles.

Struts es una infraestructura de código abierto para crear aplicaciones web mediante la arquitectura MVC (controlador de vista de modelos). La infraestructura Struts tiene un componente de controlador que se integra con otras tecnologías para proporcionar el modelo y la vista. Struts proporciona una capa de control para la aplicación web, que reduce el tiempo de construcción y los costes de mantenimiento.

La infraestructura Tiles se basa en la característica jsp:include y se empaqueta con la infraestructura de la aplicación web Struts. La infraestructura Tiles reduce la duplicación entre archivos JSP (JavaServer Pages) y crea diseños de sitios web flexibles y fáciles de mantener ensamblando páginas de presentación a partir de partes de componente.

El almacenamiento en memoria caché de Struts y Tiles es una extensión de la colocación en memoria caché de servlets y JSP, de modo que las acciones realizadas para cada tipo de almacenamiento en memoria caché son muy parecidas. Consulte el tema Configuración de almacenamiento en memoria caché de servlets para obtener más información al respecto.

Procedimiento

  1. Habilite la colocación en memoria caché de servlet y JSP. Al habilitar la colocación en memoria caché de servlets se habilita automáticamente la colocación en memoria caché de Struts y Tiles. Consulte el tema Configuración de almacenamiento en memoria caché de servlets para obtener más información al respecto.
  2. Desarrolle la política de colocación en memoria caché. Para colocar en memoria caché una respuesta de Struts o Tiles se requiere una política de colocación en memoria caché.
    Para desarrollar una política de colocación en memoria caché de Struts:

    La infraestructura Struts proporciona el componente del controlador en la aplicación de estilo MVC. El controlador es un servlet denominado org.apache.struts.action.ActionServlet.class. En el archivo web.xml de la aplicación, se añade una correlación de servlets de *.do para este servlet ActionServlet para que se procese cada una de las solicitudes de una dirección web que termine en .do. El servlet de ActionServlet utiliza la información del archivo struts-config.xml para decidir qué clase de acción Struts ejecuta la solicitud para el recurso especificado.

    En la versión anterior de WebSphere Application Server, sólo se daba soporte a una política de memoria caché por servlet. No obstante, cuando se utiliza Struts, cada solicitud que termina en .do se correlaciona con el mismo servlet ActionServlet. Para las respuestas Struts colocadas en memoria caché, escriba una política de colocación en memoria caché para el servlet ActionServlet basada en su vía de acceso de servlets.

    Por ejemplo, suponga las siguientes dos acciones Struts: /HelloParam.do y /HelloAttr.do. Para colocar memoria caché las respuestas en base al parámetro de solicitud de ID y el atributo de solicitud de argumento, respectivamente, utilice la siguiente política de colocación en memoria caché:
    <cache-entry> 
    	<class>servlet  </class>
    	<name>org.apache.struts.action.ActionServlet.class</name>
    	<cache-id>
    		<component id="" type="servletpath">
    			<value>/HelloParm.do</value>
    		</component>
    	</cache-id>
    	<cache-id>
    		<component id="" type="servletpath">
    			<value>/HelloAttr.do</value>
    		</component>
    		<component id="arg" type="attribute">
    			<required>true</required>
    		</component>
    	</cache-id>
    </cache-entry>
    Con la versión actual de WebSphere Application Server, puede correlacionar varias políticas de colocación en memoria caché para un solo servlet. Puede volver a grabar la política de colocación en memoria caché anterior como en el siguiente ejemplo:
    <cache-entry> 
    	<class>servlet>
    	<name>/HelloParam.do</name>
    	<cache-id>
    		<component id="id" type="parameter">
    			<required>true</required>
    		</component>
    </cache-entry>
    <cache-entry>
    	<class>servlet  </class>
    	<name>/HelloAttr.do</name>
    	<cache-id>
    		<component id="arg" type="attribute">
    			<required>true</required>
    		</component>
    	</cache-id>
    </cache-entry>
    Para desarrollar una política de colocación en memoria caché de Tiles:
    La infraestructura Tiles se basa en el código jsp:include, por lo tanto, todo lo que se aplique a la colocación en memoria caché JSP también se aplica a Tiles. Debe establecer el atributo flush en true en todos los fragmentos que se incluyen mediante el código tiles:insert para que los fragmentos se coloque en memoria caché correctamente. La característica adicional de la colocación en memoria caché de Tiles sobre la colocación en memoria caché de JSP se basa en el atributo tiles. Por ejemplo, podría desarrollar la siguiente plantilla layout.jsp:
    <html>
    	<%String categoryId = request.getParameter("categoryId")+"test"; %>
    	<tiles:insert attribute="header">
    		<tiles:put name="categoryId" value="<%= categoryId %>" />
    	</tile:insert>
    	<table>
    		<tr>
    			<td width="70%" valign="top"><tiles:insert attribute="body" /> </td>
    		</tr>
    		<tr>
    			<td colspan="2"><tiles:insert attribute="footer" /></td>
    		</tr>
    	</table>
    </body>
    </html>
    El código tiles:put anidado especifica el atributo del código tile insertado. En la plantilla layout.jsp, el atributo categoryId se define y pasa en el código tile que se inserta en el contenedor de la cabecera. En el siguiente ejemplo, el archivo layout.jsp se inserta en otro archivo JSP.
    <html>
    <body>
    <tiles:insert page="layout.jsp?categoryId=1002" flush="true">
    	<tiles:put name="header" value="/header.jsp" />
    	<tiles:put name="body" value="/body.jsp" />
    	<tiles:put name="footer" value="/footer.jsp" />
    </tiles:insert>
    </body>
    </html>
    El atributo de tile categoryId se pasa al archivo header.jsp. El archivo header.jsp puede utilizar el código <tiles:useAttribute> para recuperar el valor de categoryId. Para colocar en memoria caché el archivo header.jsp en función del valor del atributo categoryId, puede utilizar la siguiente política de memoria caché:
    <cache-entry>
    	<class>servlet  </class>
    	<name>/header.jsp</name>
    	<cache-id>
    		<component id="categoryId" type="tiles_attribute">
    		<required>true</required>
    		</component>
    	</cache-id>
    </cache-entry>
  3. Compruebe que la política de memoria caché esté funcionando correctamente. Puede modificar las políticas dentro del archivo cachespec.xml mientras se ejecuta la aplicación. Si desea obtener más información sobre las políticas de memoria caché, consulte el tema Configuración de objetos en memoria caché con el archivo cachespec.xml.

Resultados

Qué hacer a continuación

Si desea más información sobre la memoria caché dinámica, consulte Visión general de la tarea: Utilización del servicio de memoria caché dinámica para mejorar el rendimiento.

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=tdyn_strutstiles
File name: tdyn_strutstiles.html