Transcript PLUG-IN

CURSO STRUTS 2
PLUG-IN
En el siguiente apartado se mostrará como integrar componentes (plug-in) en Struts 2, mostrando información
sobre los plug-in integrados por defecto en el framework , así como su utilidad.
La información que se estudiará en este apartado es:
•
Plug-in
•
Configuración de un Plug-in
•
Lista de Plug-ins integrados en Struts 2
•
Lista de Plug-ins de terceros
•
Construir un plug-in personalizado
CURSO STRUTS 2
PLUG-IN
PLUG-IN
El framework Struts 2 ha sido diseño para ampliar su funcionalidad mediante plug-ins, permitiendo la
reutilización de código de una forma elegante y sencilla.
PLUG-IN
Un complemento (o plug-in en inglés) es una aplicación que se relaciona con otra para
aportarle una función nueva y generalmente muy especifica. Esta aplicación adicional es
ejecutada por la aplicación principal e interactúan por medio de la API.
En la programación actual se utilizan como una forma de expandir programas de forma
modular, de manera que se puedan añadir nuevas funcionalidades sin afectar a las ya
existentes ni complicar el desarrollo del programa principal.
Contenido de un plug-in
Un plug-in de Struts 2, esencialmente es una librería JAR que puede contener:
• clases Java, que implementen nueva funcionalidad: Actions, Interceptors, Conversores de Tipos,
Validators, Results,…
• taglibs
• plantillas FreeMarker o Velocity
• recursos estáticos HTML, imágenes, CSS, JavaScript, …
• y siempre debe estar el archivo de configuración struts-plugin.xml en el directorio raíz del JAR
Instalación
Para utilizar un plug-in es tan sencillo como copiar la librería JAR del plug-in en el directorio /WEB-INF/lib.
CURSO STRUTS 2
PLUG-IN
CONFIGURACIÓN DE UN PLUG-IN
Un plug-in del framework Struts 2 es un archivo JAR donde, a parte del contenido que aporta nueva
funcionalidad, debe existir el archivo struts-plugin.xml.
struts-plugin.xml
El archivo struts-plugin.xml sigue el mismo esquema (DTD) que el archivo struts.xml, permitiendo definir
preferencias propias de la configuración de la aplicación
Orden carga Configuración
Struts 2 carga los archivos de configuración en el siguiente orden:
1. El archivo struts-default.xml incluido en el archivo struts2-core.jar.
2. Todos los archivos struts-plugin.xml incluidos en las librerías de plug-ins.
3. El archivo struts.xml.
Esto significa que un plug-in, puede sobrescribir los valores de la configuración por defecto (struts-default.xml).
Struts 2 no carga los plug-ins en ningún orden determinado, por este motivo los plug-ins no deberían
tener dependencias con otros, sólo debería tener dependencia con las clases de Struts2-core.
Contenido
En el archivo de configuración struts-plugin.xml se pueden distribuir cualquier tipo de componente de Struts 2:
• packages
• results
• interceptors
• actions
• exception-mappings
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Struts 2 cuenta con varios plug-ins los cuales son utilizados normalmente en el desarrollo de aplicaciones Web
Java utilizando con el framework.
Los plug-ins integrados en el framework, concretamente en la versión 2.1.6 son:
• Codebehind plug-in
• Config-browser plug-in
• Convention plug-in
• Dojo plug-in
• DWR plug-in
• Jasperreports plug-in
• Javatemplates plug-in
• Jfreechart plug-in
• JSF plug-in
• Junit plug-in
• Plexus plug-in
• Portlet plug-in
• Rest plug-in
• Sitegraph plug-in
• Sitemesh plug-in
• Spring plug-in
• Struts1 plug-in
• Testng plug-in
• Tiles plug-in
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Codebehind plug-in
ADVERTENCIA: este plug-in se ha declarado obsoleto (deprecated) desde la versión 2.1
de Struts 2, agrupando todas sus funcionalidades en el nuevo plug-in Convention.
El plug-in Codebehind reduce la configuración de los Actions introduciendo un nuevo controlador:
PageController, el cual simplifica los desarrollos con Struts 2 no siendo necesario archivos de configuración,,
sólo hay que respetar una serie de convenios.
Además del nuevo controlador, el plug-in tiene también empaquetado las clases responsables de las
Anotaciones de los Actions (@Namespace, @ParentPackage, @Result y @Results).
Uso
Configuración
Para utilizar el plug-in sólo hay que copiar el JAR en la aplicación.
El plug-in permite personalizar su configuración con los siguientes parámetros, que se deben def
elementos <constant> en el archivo struts.xml:
Parámetro
Instalación
Tipo Dato
Valor
Defecto
Descr
struts.codebehind.defaultPackage
ruta paquete
codebehinddefault
El paquete por defe
mappings
struts.configuration.classpath.disableActionScanning
Boolean
false
Indica si rastrea el
Actions
El plug-in Codebehind se instala copiando el JAR del plug-in en el directorio /WEB-INF/lib de la ap
necesario ningún otro archivo.
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Config-browser plug-in
El plug-in Config Browser es una herramienta que permite ver la configuración de la aplicación en tiempo de
ejecución. Es muy útil cuando la aplicación se encuentra en fase de desarrollo, permitiendo mostrar todos los
problemas de configuración:
El plug-in dispone de las siguientes características:
• Muestra la configuración de la aplicación en tiempo de ejecución
• Muestra todas las URL accesibles por Actions
Uso
Para utilizar el plug-in Config Browser sólo hay que copiar el JAR del plug-in en el directo
INF/lib e introducir la URI, /config-browser/index.action, en el navegador para mostrar la conf
Ejemplo:
http://localhost:8080/struts2sample/config-browser/index.action
Configuración
Este plug-in no permite modificar su configuración.
Instalación
El plug-in Config Browser se instala copiando el JAR del plug-in en el directorio /WEB-INF/lib de
aplicación, no es necesario ningún otro archivo.
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Convention plug-in
El plug-in Convention reemplaza los plug-ins Codebehind y Zero Config, proporcionando las siguientes
funcionalidades:
• Convenio de asignación de los Actions en función del nombre de los paquetes Java.
• Convenio de localización de los Results.
• Convenio de nombre de Clase a nombre URL.
• URL compatibles estándar SEO (Search Engine Optimization), para facilitar el posicionamiento en
buscadores (p.e. /my-action en lugar de /MyAction).
• Anotaciones para los Actions, Interceptors, Namespace, Results y ExceptionMapping.
• Gestor de Action y Result por defecto (p.e. /usuarios buscará en el paquete
ejercicio.capitulo4.actions.Usuario y ejercicio.capitulo4.actions.Index)
Uso
Para utilizar el plug-in sólo hay que copiar el JAR en la aplicación.
Configuración
El plug-in Convention dispone de numerosos parámetros que permite personalizar su configura
estos se deben definir mediante elementos <constant> en el archivo struts.xml. Sus parámetro
configuración son:
•
struts.convention.action.disableJarScanning
•
struts.convention.action.packages
•
struts.convention.result.path
•
struts.convention.result.flatLayout
•
struts.convention.action.suffix
•
struts.convention.action.disableScanning
•
struts.convention.action.mapAllMatches
•
struts.convention.action.checkImplementsAction
Instalación
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Dojo plug-in
El plug-in Dojo permite integración con el framework Javascript Dojo, definiendo una nueva taglib que permite
el uso de técnicas AJAX para mostrar información en contadores definidos por los nuevos tags.
Uso
Para utilizar el plug-in sólo hay que copiar el JAR en la aplicación, y en aquellos JSP que s
utilizar .
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
Configuración
Este plug-in no permite modificar su configuración.
Instalación
El plug-in Dojo se instala copiando el JAR del plug-in en el directorio /WEB-INF/lib de la aplica
es necesario ningún otro archivo.
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
DWR plug-in
DWR es un framework open source Java para gestionar y facilitar el tratamiento de peticiones AJAX.
El plug-in DWR permite integración con el framework AJAX DWR (Direct Web Remoting). Este plug-in permite al
framework DWR ejecutar Actions de Struts 2 y devuelve cualquier tipo de error de validación.
Uso
Para poder utilizar la validación de los Actions con el framework DWR, es necesario modificar
configuración de DWR:
<dwr>
<allow>
<create creator="new" javascript="validator"
class="org.apache.struts2.validators.DWRValidator"/>
<convert converter="bean"
match="com.opensymphony.xwork2.ValidationAwareSupport"/>
</allow>
</dwr>
Configuración
Este plug-in no permite modificar su configuración.
Instalación
El plug-in DWR se instala copiando el JAR del plug-in en el directorio /WEB-INF/lib de la
aplicación, y el propio JAR del framework DWR.
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Jasperreports plug-in
JasperReports es un framework open source Java de reporting que permite exportar el contenidos de interfaz
en formato PDF, HTML, XLS, XML, CSV y RTF.
El plug-in JasperReports permite crear reportes de calidad desde los Actions como resultados.
Uso
El plug-in dispone de un nuevo package Action, jasperreports-default, que tiene configu
“jasper”, el cual permite mostrar reportes JasperReports como resultados.
Los parámetros de configuración del nuevo Result “jasper” son:
Parámetro
Tipo Dato
Valor Defecto
Descrip
location
String
La ubicación del reporte jasper c
dataSource*
String
Expresión EL para obtener los d
parse
Boolean
true
Indica si se debe analizar el pará
format
String
PDF
El formato de generación del r
son PDF, CSV, RTF, XLS, XML
contentDisposition
String
inline
Asigna el Content-Disposition
respuesta.
Configuración
documentName
String
Instalación
delimiter
String
imageServletUrl
String
Nombre del documento para gen
,
Carácter delimitador cuando se
Valor de la URL que puede devo
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Javatemplates plug-in
El plug-in JavaTemplates contiene una implementación en código Java de los tags del theme “simple”, los tags
de Struts 2 utilizan tecnología FreeMarker para visualizarse. Utilizando este plug-in junto al theme “simple” se
consigue una mejora de rendimiento al visualizarse las páginas.
Los tags implementados por el plug-in que disponen de un mejor rendimiento son: a, actionerror,
actionmessage, checkbox, div, fielderror, file, form, head, hidden, label, password, select, reset, submit, text,
textarea y token.
Uso
Para utilizar el plug-in es necesario copiar el JAR en la aplicación y modificar la configuració
archivo struts.xml:
<constant name="struts.ui.templateSuffix" value="java" />
<constant name="struts.ui.theme" value="simple" />
Configuración
Este plug-in no permite modificar su configuración.
Instalación
El plug-in JavaTemplate se instala copiando el JAR del plug-in en el directorio /WEB-INF/lib de l
aplicación, no es necesario ningún otro archivo.
PLUG-IN
CURSO STRUTS 2
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Jfreechart plug-in
JFreeChart es una librería open source Java que permite crear tablas y gráficos en las aplicaciones.
El plug-in JFreeChart permite que los Actions devuelvan tablas y gráficos generados por el framework
JFreeChart.
Uso
Este plug-in implementa un package Struts2, jfreechart-default, el cual cuenta con nuev
“chart”, el cual gestiona la visualización de los gráficos.
A continuación se muestra un ejemplo de configuración de un Action, utilizando el plug-in
para representar un gráfico:
<package name="/capitulo4" extends="jfreechart-default">
<action name="generaGrafico" class="ejemplo.capitulo4.GeneraGraficoAction">
<result name="success" type="chart">
<param name="width">400</param>
<param name="height">300</param>
</result>
</action>
</package>
El result ChartResult del plug-in obtiene los datos del gráfico del método getChart() del Action:
public class GeneraGraficoAction extends ActionSupport {
Configuración
private JFreeChart chart;
Instalación
public String execute() {
//generando el gráfico
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
JSF plug-in
JavaServer Faces JSF es la especificación definida por Sun para definir el comportamiento y ciclo de vida de
componentes que permiten desarrollos de aplicaciones Web. Existen distintas distribuciones del API JSF en
función de su constructor: MyFaces, Icefaces, …
El plug-in JSF permite soportar componentes JavaServer Faces (JSF) sin configuración adicional en una
aplicación Web con Struts 2. Este plug-in combina el común Action-based aproximación a la página lógica y
navegación, permitiendo soporte para componentes JSF.
Uso
Para simular el ciclo de vida de JSF, el plug-in dispone de un Interceptor y un Result que se debe g
la configuración de los Actions. Para utilizar una página con componentes JSF es necesario:
1.
Añadir el Interceptor stack jsfStack a la definición del Action. También está disponibl
jsf-default para simplificar el proceso.
2.
Añadir un Result de tipo “jsf” asociado al nombre success.
Un ejemplo de configuración de navegación del plug-in JSF para utilizar componentes JSF en la vis
<package name="capitulo4-1-jsf" extends="jsf-default">
<action name="..." class="ejercicio.capitulo4.TestJSFAction">
<result name="success" type="jsf" />
<result name="index" type="redirectAction">index</result>
</action>
</package>
Configuración
<package name="capitulo4-2-jsf" extends="jsf-default">
<action name="..." class="ejercicio.capitulo4.TestJSFAction">
<interceptor-ref name="basicStack"/>
<interceptor-ref name="jsfStack"/>
Instalación
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Junit plug-in
JUnit es una librería open source Java que facilita el desarrollo de pruebas unitarias.
El plug-in JUnit permite integrar el framework de pruebas unitarias JUnit.
Uso
El plug-in dispone una clase base StrutsTestCase que pueden heredar las clases de realicen te
componentes Struts 2. Además esta clase permite soporte para la integración de la fact
objetos del framework Spring.
public class TestAction extends StrutsTestCase {
// código testing
}
Configuración
Este plug-in no permite modificar su configuración.
Instalación
Normalmente este plug-in solo se instala en entornos en desarrollo para realizar pruebas, para
sólo hay que copiar el JAR del plug-in en el directorio /WEB-INF/lib de la aplicación, y definir en
classpath de las clases de test el propio JAR de la librería JUnit.
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Plexus plug-in
Plexus es un framework Java que permite inyección de dependencias (DI) y diversas características en las
aplicaciones que lo utilicen.
El plug-in Plexus integra el framework Plexus para la inyección de los Actions, Interceptors y Results en una
aplicación con Struts 2. Este plug-in dispone de una implementación ObjectFactory el cual crear las clases
Actions, Interceptors y Results como objetos Plexus.
Uso
Configuración
Instalación
Para utilizar la inyección de objetos del framework Plexus, para Actions, Interceptors y Results
necesario definir en el atributo class de la configuración de los Actions el identificador del ob
Plexus:
<action name="myAction" class="myPlexusId">
<result>myAction.jsp</result>
</action>
El plug-in Plexus requiere configurar la factoría de creación de objetos de Struts
(struts.properties):
struts.objectFactory=plexus
El plug-in Plexus se instala copiando el JAR del plug-in en el directorio /WEB-INF/lib de la
aplicación, y el propio JAR del framework Plexus.
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Portlet plug-in
Los portlets son componentes modulares de interfaz de usuario, gestionadas y visualizadas en un portal web.
Los portlets producen fragmentos de código de marcado que se agregan en una página de un portal
El plug-in Portlet se utiliza para desarrollar JSR168 portles usando Struts 2.
Uso
Configuración
Instalación
Para utilizar el plug-in Portlet sobre una aplicación Struts 2 es necesario realizar distintos
necesario utilizar la clase portlet.
1.
Modificar el archivo de configuración Portlet, portlet.xml, definiendo la siguiente c
org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher:
<portlet-app
version="1.0"
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd
http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
id="...">
<portlet id="...">
..
<portlet-class>
org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher
</portlet-class>
...
</portlet>
</portlet-app>
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Rest plug-in
El plug-in REST simplifica los recursos REST-style para que puedan utilizar clientes tanto humanos, como
máquinas. La meta es conseguir que las URL sigan el estilo Ruby on Rails REST y activar el desarrollo de recursos
XML-free.
• Las características del plug-in REST son:
• Implementación completa del estilo de URL de Ruby on Rails REST.
• Soporte desarrollo XML-free, sin necesidad de Anotaciones.
• Servicio de serialización y deserialización para datos XML y JSON.
• Gestión de errores automáticos.
• Configuración de tipos seguros en la respuesta HTTP.
• Soporte automático de peticiones HTTP GET condiciones.
Uso
Configuración
Instalación
Es recomendable, aunque opcional, utilizar el sufijo “Controller” para el nombre de lo
distinguirlos de los Actions de Struts 2.
ContentTypeHandler
Se puede definir un ContentTypeHandler personalizado en la configuración del framework St
poder gestionar aquellas extensiones que no están disponibles por los plug-in REST.
<bean name="myYaml" type="org.apache.struts2.rest.handler.ContentTypeHandler"
class="com.mycompany.MyYamlContentHandler" />
También se pueden sobrescribir el comportamiento de los gestores de extensiones por defect
Por ejemplo, en la siguiente definición de bean en la configuración de Struts 2, define un
encarga de gestionar el comportamiento de las extensiones XML.
<bean name="myXml" type="org.apache.struts2.rest.handler.ContentTypeHandler"
class="com.mycompany.MyXmlContentHandler" />
Por último, hay que configurar el plug-in REST para indicarle que gestor gestiona las
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Sitegraph plug-in
El plug-in SiteGraph genera diagramas gráficos, representando el flujo de la aplicación Web. El plug-in
SiteGraph trabajar transformando archivos de configuración, clases Action y archive Vista (JSP; Velocity,
FreeMarker), para mostrar un mapa visual.
El plug-in SiteGraph genera una vista gráfica de la aplicación, pero se deben respetar un formato para que
funcione correctamente. Los requisitos son:
• El tag JSP debe utilizar el namespace “s”, es decir tags con el siguiente formato <s:xxx/>.
• Al utilizar los tags form y action, deben apuntar directamente el nombre del Action, sin definir la
extensión; es decir <s:form action=”foo”/> esta OK, pero <s:form action=”foo.action”/> es incorrecto.
Uso
Configuración
Instalación
Para utilizar el framework SiteGraph sobre una aplicación Web con Struts 2 hay que eje
comando:
java -cp ... -jar struts2-sitegraph-plugin-x.x.x.jar
-config CONFIG_DIR
-views VIEWS_DIRS
-output OUTPUT
[-ns NAMESPACE]
A continuación se muestra ejemplo de gráfico generado por el framework SiteGraph:
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Sitemesh plug-in
SiteMesh es un framework de decoración y diseño de interfaces Web, que facilita la creación de aplicaciones
Web que necesiten utilizar un diseño, navegación y apariencia constantes.
El plug-in SiteMesh permite utilizar plantillas SiteMesh para acceder a recursos del framework.
El framework SiteMesh, almacena todos los valores del Value Stack como atributos de la petición, esto significa
que si se desea mostrar datos del Stack, se puede utilizar las taglibs de Struts 2.
Uso
Configuración
Instalación
Para utilizar el plug-in SiteMesh es necesario modificar la configuración de los Serv
archivo web.xml, añadiendo dos nuevos Servlet Listeners para permitir que el frame
gestione las peticiones. La configuración del archivo web.xml debe quedar de la sigu
necesario respectar el orden
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>org.apache.struts2.sitemesh.FreeMarkerPageFilter</filter-class>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Spring plug-in
Spring es framework Web que proporciona un sistema centralizado y automatizado para asignar (wiring)
Objetos en la aplicación, utilizando la técnica de Inyección de Dependencias.
El plug-in Spring funciona sobrescribiendo la ObjectFactory de Struts 2 para utilizar el núcleo del framework
Spring para inyectar objetos. Cuando un objeto es creado, utiliza el atributo class en la configuración de Struts 2
el cual debe coincidir con el atributo id de la configuración de Spring. Si no se encuentra, entonces se instancia
la clase de la forma habitual.
Las características del plug-in Spring son:
• Permitir al framework Spring gestionar la creación de Actions, Interceptors y Results.
• Los objetos creados por Struts 2 son gestionados por el sistema autowired de Spring, después de la
creación.
• Dispone dos nuevos Interceptors que auto asigna Actions, si no se utiliza el Spring ObjectFactory.
Uso
Configuración
Instalación
Para delegar en el framework Spring la creación de Actions, Interceptors y Results de Struts 2, e
parámetros de configuración en el archivo en el archivo struts.properties:
struts.objectFactory = org.apache.struts2.spring.StrutsSpringObjectFactory
O en el archivo struts.xml, utilizando el elemento <constant>:
<struts>
<constant name="struts.objectFactory"
value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
...
</struts>
El framework Spring tiene activado por defecto su sistema autowiring (auto-asignación) por n
cambiar en la configuración en los siguientes métodos: name, type, auto y constructor. Por
Spring para la creación de todos sus objetos, pero si no puede ser instanciados por el framewor
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Struts1 plug-in
El plug-in Struts 1 permite utilizar Actions y ActionForms de Struts 1 en aplicaciones Web con el framework
Struts 2, pudiendo utilizar la validación de los ActionForms de Struts 1.
Este plug-in provee una clase Action genérica de Struts 2 que encapsula un Action Struts 1,
org.apache.struts2.s1.Struts1Action. La clase encapsulada dispone mecanismos de llamadas para a los métodos
clásicos de los Actions y ActionForms de Struts 1.
El plug-in también tiene nuevos Interceptors para simular la lógica de Struts 1:
• “scopeModelDriven”, es la clase org.apache.struts2.s1.ActionFormValidatorInterceptor, la cual
integra la validación de los ActionForms en el flujo de trabajo de Struts 2.
• “actionForm-validation”, referencia a la clase org.apache.struts2.s1.ActionFormResetInterceptor,
que invoca al método reset() de los ActionsForms.
Uso
Configuración
Instalación
Para utilizar un Action y ActionForm de Struts 1 en una aplicación Struts 2, hay que crear una con
de un package de Struts 2, pero debe extender del package struts1-default, el cual contiene nu
para trabajar con Actions de Struts 1. El atributo class de la configuración del Action debe apun
plug-in Struts 1 a Struts 2, Struts1Action:
<package name="capitulo4" extends="struts1-default">
<action name="actionStruts1" class="org.apache.struts2.s1.Struts1Action">
<param name="className">ejercicio.capitulo4.struts1.MiAction</para
<result>myAction.jsp</result>
</action>
</package>
En aquellos casos en los que Action de Struts 1 requiere de la creación de un ActionForm para o
de la petición, es necesario configurar los Interceptors scopedModelDriven, actionForm-validat
para inyectar el ActionForm en el Action.
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Testng plug-in
TestNG es una librería open source Java que facilita el desarrollo de pruebas unitarias sobre clases Java.
El plug-in TestNG permite integración con el framework de pruebas unitarias TestNG. Las características del
plug-in son:
• Clase base test que inicia una instancia completa de Struts 2.
• Permite testear como se carga la configuración y los componentes utilizados.
Uso
Este plug-in dispone de una clase base StrutsTestCase que permite extender las clases de
para trabajar con componentes Struts 2.
public class TestNGAction extends StrutsTestCase {
// testing code
}
Configuración
Este plug-in no permite modificar su configuración.
Instalación
Normalmente este plug-in solo se instala en entornos en desarrollo para realizar pruebas, para
ello sólo hay que copiar el JAR del plug-in en el directorio /WEB-INF/lib de la aplicación, y defin
en el classpath de la clases de Test el propio JAR de la librería TestNG.
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS INTEGRADOS EN STRUTS 2
Tiles plug-in
Tiles es un framework que facilita la creación de interfaces Web con un aspecto similar, actuando como un
decorador para lo cual utiliza un diseño de plantillas.
El plug-in Tiles permite integración con el framework Tiles para permitir a los Actions utilizar páginas Tiles, las
cuales pueden utilizar tecnología JSP, FreeMarker o Velocity.
Uso
Para poder utilizar el plug-in Tiles es necesario realizar los siguientes cambios en la configurac
aplicación:
•
Registrar el Servlet Listener de Tiles en el archivo web.xml, puede ser cualquier e
estándar de Tiles org.apache.tiles.listener.TilesListener, o la versión de S
org.apache.struts2.tiles.TilesListener. Y también el dato de ubicación de los arch
configuración Tiles,
<context-param>
<param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</p
name>
<param-value>
/tiles/myTiles1.xml,
/tiles/myTiles2.xml,
/tiles/myTiles3.xml
</param-value>
</context-param>
Configuración
<listener>
Instalación
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
CURSO STRUTS 2
PLUG-IN
LISTA PLUG-INS DE TERCEROS
Además de los propios plug-ins incluidos en la distribución en el framework, la comunidad de Struts 2 dispone
de un repositorio Web donde compartir los plug-ins open source que construyan, para que el resto de la
comunidad de desarrolladores de Struts 2 puedan utilizarlos.
La ruta del repositorio de plug-ins Struts 2 es http://cwiki.apache.org/S2PLUGINS/home.html.
Algunos de los plug-ins disponibles en el repositorio son:
Advanced Fileupload Plug-In, .permite utilizar parámetros de configuración avanzada de la librería Commons FielUpload utili
ework Struts 2 para permitir subir archivos.
Another JSON Result Type (struts2jsonresult), Result que permite trabajar con datos JSON.
Connext Graph Plug-In, permite utilizar el framework Open Flash Chart para mostrar gráficos en la aplicación.
DataVision Plug-In, permite soporte para el framework package open source de reporting Data DataVision.
EJB3 JBoss Plug-In, permite que beans de sesión EJB3 se puedan inyectar en los Actions de Struts 2 bajo un servidor JBoss.
EJB3 Plug-In, permite que beans de sesión EJB3 se puedan inyectar en los Actions de Struts 2.
Embedded JSP Plug-In, permite utilizar JSP que se encuentre en el classpath desde archivos JAR.
ExtraTags Plug-In, añade un nuevo conjunto de tags adicionales al grupo de Tags UI.
Full Hibernate Plug-In, dispone integración con el framework Hibernate Validator, Hibernate Core Sessions y Transactions, p
stión de la configuración en la aplicación Web.
Grails Plug-In, permite que aplicaciones Grails se ejecuten en Struts 2.
Groovy Plug-In, soporte para desarrollar los Actions e Interceptors utilizando el lenguaje Groovy.
Guice Plug-In, integra el framework Guice para la gestión de inyecciones de los Actions, Interceptors y Results.
GWT Plug-In, integración con el framework Google Web Toolkit (GWT) para poder utilizarse en los Actions.
HDIV Plug-In, integración del framework HDIV (HTTP Data Integrity Validator) con Struts 2 añadiendo funcionalidades de segu
Hibernate Session Plug-In, facilita el uso del patrón de diseño "open session in view" desde una aplicación Web con Hibernate
Image Plug-In, distintos plug-ins que permiten trabajar con imágenes (thumbnails, almacenamiento remoto, validator).
CURSO STRUTS 2
PLUG-IN
CONSTRUIR UN PLUG-IN PERSONALIZADO
Apache Struts 2 dispone una sencilla arquitectura de plug-ins, para permitir que los desarrolladores mejoren la
funcionalidad del framework con simplemente copiar el JAR del plug-in en el classpath de la aplicación.
El hecho de que los plug-ins se empaqueten en archivos JAR, facilita la distribución y compartido con otros.
Contenido de un plug-in
En un archivo JAR plug-in de Struts 2 debe contener al menos:
•
Archivo Configuración struts-plugin.xml
Configuración
En el archivo struts-plugin.xml se pueden definir:
•Nuevos packages con la configuración de Results,
•Sobrescribir los valores de las constantes de la apl
•Introducir nuevos puntos de extensión para que la
de la aplicación (Actions, Validators, Convertidor de
A parte del archivo de configuración, opcionalmente se definene:
• Clases Java que gestionen el contenido del plug-in
• Plantillas FreeMarker
• Recursos estáticos
Recursos estáticos
En un plug-in también se pueden añadir recursos estátic
se deben crear bajo el directorio /static dentro del JAR. P
se debe utilizar el path “/static” para referenciarlo.
Ejemplo
CURSO STRUTS 2
PLUG-IN
CONSTRUIR UN PLUG-IN PERSONALIZADO
Ejemplo Plug-In Personalizado: CaptchaPlugin
Los pasos a seguir para la construcción del CaptchaPlugin son:
la
guration
-default">
2. Creamos la estructura de directorios para a continuación crear el JAR,
mediante el comando:
jar -cvf captchaplugin.jar *
3. Copiamos el arc
Para poder trabaja
Action donde se u
<package name="
<action name="
<result>/js
</action>
<action name="
<result nam
<result nam
CURSO STRUTS 2
PLUG-IN
RECUERDA QUE…
A lo largo del presente apartado hemos visto la integración de componentes en Struts 2 mediante plug-ins:
Definición
Listado
Desarrollo