Los proyectos de portlet Struts comparten algunas características comunes con los proyectos Struts y portlet estándar, aunque hay algunas diferencias que hay que tener en cuenta. La estructura de los proyectos de portlet Struts y los recursos relacionados vienen dictados por el soporte de la Infraestructura portlet Struts (SPF) proporcionada por WebSphere Portal y que se incluye en Rational Developer.
Los proyectos de portlet Struts se crean utilizando el asistente Proyecto de portlet nuevo. En el proceso de creación del proyecto, se añadirá un portlet habilitado por Struts por omisión y, opcionalmente, un archivo de diagrama Web. El asistente genera automáticamente archivos de configuración de portlet Struts y realiza las actualizaciones necesarias de los archivos web.xml y portal.xml; además, añade al proyecto todos los archivos JAR y las bibliotecas de códigos SPF, en la estructura de directorios adecuada.
Tipo de recurso | Archivos | Directorio de destino | Notas |
---|---|---|---|
TLDs |
|
WEB-INF | |
JARs |
|
WEB-INF/lib | |
Archivos de configuración |
|
WEB-INF | El elemento <controller>, que define la clase Petición de procesador (Request processor), se genera automáticamente en el archivo de configuración de Struts. |
Descriptores de despliegue |
|
WEB-INF | Portlet API de IBM (existente) En el archivo web.xml estándar se realizan las modificaciones siguientes:
|
Portlet API JSR 168 (estándar) En el archivo portlet.xml se incluyen los elementos siguientes:
Las definiciones de la biblioteca de códigos de portlet Struts adecuadas para JSR 168 SPF y la lista de archivos de bienvenida soportados para las modalidades de Struts se incluyen en el archivo web.xml. |
Los fragmentos del archivo descriptor de despliegue y de la configuración de ejemplo que se muestran a continuación muestran los códigos representativos que se utilizan en los proyectos de portlet Struts:
<controller processorClass="com.ibm.wps.portlets.struts.WpsRequestProcessor"> </controller>
<servlet id="Struts_Unique_Servlet_Name"> <servlet-name>Struts</servlet-name> <display-name>Struts Portlet</display-name> <servlet-class>com.ibm.wps.portlets.struts.WpsStrutsPortlet</servlet-class> <!-- Struts configuration --> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>struts-servlet-mapping</param-name> <param-value>*.do</param-value> </init-param> <!-- end of Struts configuration --> </servlet>
<servlet-mapping id="ServletMapping_exclusivo_Struts"> <servlet-name>Struts</servlet-name> <url-pattern>/Struts/*</url-pattern> </servlet-mapping>Éste es un ejemplo de bibliotecas de códigos adicionales que pueden añadirse a web.xml:
<taglib> <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib>
<portlet-app uid="Un_ID_exclusivo:1" versión-mayor="1" versión-menor="0"> <portlet-app-name>Struts Portlet Application</portlet-app-name> <portlet id="Portlet_1" href="WEB-INF/web.xml#Nombre_exclusivo_servlet_Struts" versión-mayor="1" versión-menor="0"> <portlet-name>Struts Portlet</portlet-name> <cache> <expires>0</expires> <shared>NO</shared> </cache> <allows> <maximized/> <minimized/> </allows> <supports> <markup name="html"> <view/> </markup> </supports> </portlet> </portlet-app>Este es un ejemplo de un portlet concreto definido en portlet.xml:
<concrete-portlet-app uid="Un_ID_exclusivo:1.1"> <portlet-app-name>Struts Blank Application</portlet-app-name> <concrete-portlet href="#Portlet_1"> <portlet-name>Struts Portlet</portlet-name> <default-locale>en</default-locale> <language locale="en"> <title>Struts Portlet</title> <title-short>Struts Portlet</title-short> <description>Struts Portlet</description> <keywords>WPS, Struts</keywords> </language> <config-param> <param-name>FilterChain</param-name> <param-value>StrutsTranscoding</param-value> </config-param> <!-- any additional Struts related config-param values added here --> </concrete-portlet> </concrete-portlet-app>
Los fragmentos del archivo descriptor de despliegue y de la configuración de ejemplo que se muestran a continuación muestran los códigos representativos que se utilizan en los proyectos de portlet Struts:
<controller processorClass="com.ibm.portal.struts.portlet.WpRequestProcessor"> </controller>
<taglib> <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib>
<portlet> <portlet-name>StrutsPortletProject</portlet-name> <display-name>StrutsPortletProject portlet</display-name> <portlet-class> com.ibm.portal.struts.portlet.StrutsPortlet </portlet-class> <!-- Struts configuration --> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>struts-servlet-mapping</param-name> <param-value>*.do</param-value> </init-param> <!-- end of Struts configuration --> <!-- Here is an example of edit mode initialization: --> <init-param> <param-name>config/html/edit</param-name> <param-value>/WEB-INF/struts-html-edit.xml</param-value> </init-param> <!-- The following snippets are generated by the portlet API. --> <expiration-cache>0</expiration-cache> <supports> <mime-type>text/html</mime-type> <portlet-mode>view</portlet-mode> <portlet-mode>edit</portlet-mode> </supports> <supported-locale>en</supported-locale> <resource-bundle> strutsportletjsr168.nl.StrutsPorltetJSR168PortletResource </resource-bundle> <portlet-info> <title>StrutsPortletJSR168 portlet</title> </portlet-info> <portlet-preferences> <!-- example of setting the first page of the html view mode --> <preference> <name>com.ibm.struts.portal.page.view.html</name> <value>index.jsp</value> </preference> <!-- example of setting the first page of the html edit mode --> <preference> <name>com.ibm.struts.portal.page.edit.html</name> <value>html/edit/index.jsp</value> </preference> </portlet-preferences> </portlet>
Conceptos relacionados
Aplicaciones de portlet Struts
Infraestructura portlet Struts
Trabajo con descriptores de despliegue de portlet
Aplicaciones Web basadas en Struts - Visión general
Herramientas de Struts para el desarrollo de aplicaciones
Tareas relacionadas
Creación de portlets Struts
Creación de archivos JSP portlet Struts
Creación de aplicaciones Web bien diseñadas utilizando Struts
Referencia relacionada
Diferencias entre las clases de biblioteca de códigos Struts 1.1 y SPF