CURSO STRUTS 2 CONFIGURACIÓN

Slides:



Advertisements
Presentaciones similares
2010Ing. de Sistemas II Persistencia en EJB3 Pasos para crear entity beans.
Advertisements

JEE (EJB3) Configuración Ambiente de Desarrollo
JEE Introducción a Java Enterprise Edition (JEE) y el modelo Enterprise Java Beans (EJB)
I. Sesión 2 Noviembre 2010 Claudio Chaucca Umana
Internet y tecnologías web
Red Social: “Un millón de Amigos”.
Curso de java básico (scjp)
Asynchronous JavaScript and XML. Esta clase sirve para ser utilizado cuando lo único que queremos hacer es actualizar cierta parte de un sitio Web continuamente.
Curso de Java Capitulo 7: Continuación Poo Profesor:
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Programación Orientada a Objeto 1
Arquitectura Web en Aplicaciones Empresariales Java/J2EE
Aplicaciones J2EE.
Validator Framework. Jakarta Commons Validator Paquete de clases de utilidad para la implementación de reglas de validación de datos de entrada de forma.
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
"java del lado del servidor" Servlet y JSP Java Server Pages.
Presentación Asignatura POF030 Semana 1. Contenido En forma general, los conceptos que se estudiarán en la asignatura son: – Procedures – Functions –
OBJETO REQUEST. El objeto Request Por qué el objeto request Funcionamiento Colecciones: – Transferencia de variables por URL –Transferencia de variables.
Subir Ficheros al Servidor con PHP José Sánchez Galvañ.
4ta. Reunión SpringHispano & JavaMexico Struts 2.
Servlets Servlets.
JSP Copyright ISIPE – Instituto de Servicios Informáticos para Empresas – Universidad Siglo 21 – Cualquier copia u otro uso debe ser autorizado expresamente.
Curso de Java y Aplicaciones Web
Symfony La Vista y el Controlador (MVC)
Informática II Prof. Dr. Gustavo Patiño MJ
Java 2 Platform Enterprise Edition
RMI (Remote Method Invocation)
CURSO STRUTS 2 CONVERSIÓN DE TIPOS
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
RESUMENCURSO STRUTS 2 Resumen de lo visto en este tercer módulo: VISTA del framework Struts 2 Debes tener los conceptos muy claros sobre: Results UI Tags.
UNIVERSIDAD NACIONAL DE PIURA
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Java Server Faces.
HTML HyperText Markup Language (Lenguaje de Marcas de Hipertexto)
Características y elementos fundamentales J.M. Morales-del-Castillo
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
ESTRUCTURA DE DATOS EN JAVA
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
SPRING MVC.
CURSO STRUTS 2 RESUMEN Resumen de lo visto en este quinto módulo: CONCEPTOS AVANZADOS del framework Struts 2: Debes tener los conceptos muy claros sobre:
Generación de páginas en forma dinámica utilizando Apache Tomcat®. Expositores: Luis Ehlen Luis Báez Grupo 8 Programación de Sistemas Profesor: Agustín.
Patrones de Diseño: Command
CURSO STRUTS 2 RESUMEN Resumen de lo visto en este primer módulo de INTRODUCCIÓN al framework Struts 2 Debes tener los conceptos muy claros sobre: Framework.
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.
Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer
CURSO STRUTS 2 INTERCEPTORS
MÓDULO 1: Introducción al framework Struts 2
CURSO STRUTS 2 RESUMEN Resumen de lo visto en este segundo módulo: CONCEPTOS PRINCIPALES del framework Struts 2 Debes tener los conceptos muy claros sobre:
GENERIC TAGSCURSO STRUTS 2 En el siguiente apartado del curso se mostrará el grupo de Tags Generic de Struts 2, realizando una revisión de cada una de.
Ihr Logo PHP Parte 4 “manejo de formularios”. Your Logo Formularios  El proceso para el manejo de FORMULARIOS html requiere generalmente dos páginas,
MBA. LIDA LOOR MACIAS 1. 3 martes, 13 de octubre de 2014 OBJETIVO: El estudiante adquirirá los fundamentos básicos de la programación orientada a objeto.
      Protocolo de transferencia de Hipertexto, empleado para acceder a documentos de hipermedia  El protocolo nació en el CERN, como base.
Etiquetas e Internacionalización. Recursos de String/Manejo de Errores  Recursos de String Todos los strings usados en mensajes en JSPs tanto de datos.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Jakarta Struts version Juan Manuel Zorrilla Gamarra Mario Titto Acostupa.
Confidential // Neoris 1 Confidential // Do Not Reproduce without prior written permission from Neoris Servlets.
Algoritmos y Programación III
SOFTTEK INTERNAL © Copyright All Rights Reserved. Valores Corporativos Softtek S.A. de C.V. Struts Academia Java.
© Softtek Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray
Guadalupe Andrade Mociño.  Significa Modelo Vista Controlador  Es un patrón de diseño  Esta compuesto por tres grandes capas: modelo, vista y controlador.
Programación orientada a objetos Capítulo 9 Algo mas sobre herencias.
Your Logo ING. FREDY ALEXANDER MARTINEZ. Here comes your footer  Page 2 Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación.
Clases “ Es una Abstracción de un elemento del mundo real ”
Web y Multimedia II Integrantes: Piero Álvarez Mayra Atience Jhonney Bermeo Johanna Cabrera Gabriela Cango.
Centro Universitario UAEM Zumpango Ingeniería en Computación Agosto 2015.
Softlogia S.R.L. Formación de Recursos Humanos Java Server Faces Instructor: Martin R. Baspineiro.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

CURSO STRUTS 2 CONFIGURACIÓN En el siguiente apartado se enumerarán y mostrará los distintos archivos de configuración que dispone el framework Struts 2, indicando que meta tiene cada uno de ellos, así como modificarlos para poder crear configuraciones personalizadas. Los archivos de configuración que se estudiarán en este apartado son: web.xml struts.xml struts-default.xml struts.properties struts-plugin.xml

LA CONFIGURACIÓN EN STRUS 2 CURSO STRUTS 2 CONFIGURACIÓN LA CONFIGURACIÓN EN STRUS 2 Struts 2 dispone de distintos sistemas de configuración para desarrollar aplicaciones Web, permite configuración mediante archivos XML y/o Anotaciones, además de permitir configuración del propio framework mediante archivo properties. Los archivos de configuración de Struts 2 son: web.xml struts.xml struts-default.xml struts.properties struts-plugin.xml web.xml descriptor de despliegue es el archivo principal y obligatorio, para permitir el funcionamiento del framework, define el Filter del framework para capturar todas las peticiones. struts.xml archivo opcional de configuración XML de la aplicación, contendrá Results, packages, Actions, Interceptors…. struts-default.xml configuración por defecto del aplicación dada por Struts 2, este archivo se encuentra empaquetado dentro del JAR struts2-core.jar struts.properties archivo opcional que contendrá la configuración del propio framework. struts-plugin.xml archivo de configuración opcional para definir los plugins que utiliza la aplicación.

CURSO STRUTS 2 CONFIGURACIÓN web.xml El archivo web.xml es el archivo de configuración obligatorio de despliegue de cualquier aplicación Web Java, se debe crear bajo el directorio /WEB-INF. En este archivo se define el FilterDispatcher de Struts 2, el cual capturará todas las peticiones recibidas por la aplicación para que las gestione el framework. Parámetros configuración config actionPackages configProvides, loggerFactory parámetros Ejemplo config lista de archivos de configuración XML separados por comas, para que se carguen la configuración, por defecto es struts.xml. actionPackages lista de paquetes Java separados por comas, para que el framework busque clases Action. configProvides lista de clases Java separadas por comas, que implementan el interface ConfigurationProvider para cargar la configuración. loggerFactory nombre de la clase que implemente el LoggerFactory. NOTA: Desde la versión 2.1.3 el filtro que normalmente se utilizaba org.apache.struts2.dispatcher.FilterDispatcher se ha marcado como obsoleto (“deprecated”) en su lugar hay que utilizar la clase StrutsPrepareAndExecuteFilter, definida en este web.xml. parametros cualquier tipo de parámetro que el framework gestiona como una constante <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="...">   <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>ejemplo.capitulo2.actions</param-value> </init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts/struts-config.xml</param-value> </filter> <filter-mapping> <url-pattern>/*</url-pattern> </filter-mapping> <!-- ... --> </web-app>

CURSO STRUTS 2 CONFIGURACIÓN struts.xml El archivo web.xml es el archivo de configuración obligatorio de despliegue de cualquier aplicación Web Java, se debe crear bajo el directorio /WEB-INF. DocType Los archivos de configuración deben cumplir el DOCTYPE de Struts 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> ... </struts> Dividir archivos configuración La configuración de la aplicación se puede dividir en distintos archivos de XML mediante la directiva <include>  <struts> <include file="Principal.xml"/> <include file="/ejemplo/capitulo1/Capitulo1.xml"/> <include file="Simple.xml"/> <include file="/ejemplo/capitulo2/Capitulo2.xml"/> Sub-elementos <bean> <constant> <include> <package>

CURSO STRUTS 2 CONFIGURACIÓN struts.xml <bean> Este elemento define al framework que clases debe crear o qué campos estáticos de un bean son visibles para usar en la aplicación. Atributos   Ejemplo <struts> <bean name=”uniqueBean” type=”Interface” class=”ejemplo.capitulo2.MiBeanClass”/> </struts> Atributo Obligatorio Tipo Dato Descripción class X String La clase Java para ser instanciada o el método estático que sea visible type El interface Java que implementa name Nombre único para referenciar al bean scope El ámbito del bean, los valores permitidos son: default, singleton, request, session y thread. static Boolean Indica si se utiliza un método estático. optional Indica si el bean es opcional

CURSO STRUTS 2 CONFIGURACIÓN struts.xml <constant> El elemento <constant> se utiliza para sobrescribir un valor de la configuración del framework, definida en el archivo struts.properties. Atributos Ejemplo Constante para activar la configuración de la aplicación en modo desarrollo (struts.devMode): <struts> <constant name=”struts.devMode” value=”true”/> </struts> Atributo Obligatorio Tipo Dato Descripción name X String Nombre de la constante value Valor de la constante

CURSO STRUTS 2 CONFIGURACIÓN struts.xml <include> El elemento <include> permite definir la ruta de otro archivo de configuración de la aplicación, para de esta forma dividir la configuración en varios archivos más fáciles de gestionar. Cada archivo de configuración incluido debe cumplir el mismo DOCTYPE que el archivo struts.xml. Atributos Ejemplo <struts> </include file=”struts-configuracion-1.xml”> </include file=”struts-configuracion-2.xml”> … </include file=”struts-configuracion-n.xml”> </struts> Atributo Obligatorio Tipo Dato Descripción file X String Define la ruta del archivo de configuración a incluir

CURSO STRUTS 2 CONFIGURACIÓN struts.xml <package> El elemento <package> permite organizar los <actions> de una aplicación en módulos, pudiendo existir uno o varios elementos <package>. Atributos En función de la configuración del elemento <package> se configuran las URIs de los <action> que contiene el package. Para construir las URI sigue esta estructura: /contexto/namespace/actionName.action Sub-Elementos <result-types> <interceptors> <default-interceptor-ref> <default-action-ref> <default-class-ref> <global-results> <global-exception-mappings> <action> Atributo Obligatorio Tipo Dato Descripción name X String Nombre del package, debe ser único namespace Namespace para todos los Actions del package extends Package padre del que heredar sus configuración abstract Boolean indica si el package es abstracto

CURSO STRUTS 2 CONFIGURACIÓN struts.xml <package> <result-types> Este elemento agrupa elementos del tipo <result-type>. <package ...> <result-type name="chain" class="..."/> <result-type name="dispatcher" class="..." default="true"/> <result-type name="freemarker" class="..."/> </result-types> </package> Sub-elementos <result-type> Registra un Result. Atributos Ejemplo <package ...> <result-types> <result-type name="chain" class="..."/> <result-type name="dispatcher" class="..." default="true"/> <result-type name="freemarker" class="..."/> </result-types> </package> Atributo Obligatorio Tipo Dato Descripción name X String Nombre para referenciar al Result class Clase Java del Result default Boolean Especifica si es el Result por defecto para el package

CURSO STRUTS 2 CONFIGURACIÓN struts.xml <package> <interceptors> El elemento <interceptor> permite registra una pila de elementos <interceptor> en el package. <package ...> <interceptor name="validation" class="..."/> <interceptor name="logger" class="..."/> </interceptors> </package> Sub-elementos <interceptor> <interceptor-ref> <interceptor-stack> <default-interceptor-ref> Define los interceptors de un <package> o un <action>. Atributos Ejemplo <package ...> <interceptors> <interceptor name="validation" class="..."/> <interceptor name="logger" class="..."/> </interceptors> </package> Atributo Obligatorio Tipo Dato Descripción name X String Nombre para referenciar el Interceptor class Clase Java del Interceptor Este elemento se utiliza para referenciar a un <interceptor> registrado y se puede utilizar tanto bajo un elemento <interceptor-stack> o bajo <action>. Ejemplo <package ...> <interceptors> <interceptor name="alias" class="..."/> <interceptor name="i18n" class="..."/> <interceptor name="validation" class="..."/> <interceptor name="logger" class="..."/> </interceptors> <action ...> <interceptor-ref name="alias"/> <interceptor-ref name="i18n"/> <interceptor-ref name="validation"/> <interceptor-ref name="logger"/> <result name="input">/jsp/Input.jsp</result> <result>/jsp/Success.jsp</result> </action> </package> Define el Interceptor o Interceptor Stack por defecto que se ejecutaran para todos los actions de un package que no definan sus propios Interceptors. El único atributo que tiene este elemento es name, donde se debe definir el nombre del Interceptor o Interceptor Stack. Ejemplo <package …> <default-interceptor-ref name=”defaultStack> </package> Este elemento permite agrupar toda una serie de elementos <interceptor> y <interceptor-ref> para construir un Interceptor Stack a ejecutarse al invocar un <action> en concreto, o bien para todo el <package>. Ejemplo <package ...> <interceptor-stack name="basicStack"> <interceptor-ref name="exception"/> <interceptor-ref name="servlet-config"/> <interceptor-ref name="prepare"/> <interceptor-ref name="checkbox"/> <interceptor-ref name="params"/> <interceptor-ref name="conversionError"/> </interceptor-stack> <action ...> <interceptor-ref name="basicStack"/> <result>/jsp/Success.jsp</result> </action> </package>

CURSO STRUTS 2 CONFIGURACIÓN struts.xml <package> <default-action-ref> Este elemento define que action será invocado si no se encuentra coincidencia con la URI en el package. Sólo tiene el atributo name, que define el action por defecto. <package …> <default-action-ref name=”Login”> </package> <default-class-ref> Este elemento permite sobrescribir la configuración por defecto del framework para que se ejecute una clase distinta a ActionSupport, en caso de que no se defina la clase para un <action>. <default-class-ref class=”ejercicio.capitulo2.actions.MiBaseAction”>

CURSO STRUTS 2 CONFIGURACIÓN struts.xml <package> <global-exception-mappings> El elemento <global-exception-mappings> permite declarar elementos <exception-mapping> para capturar aquellas exceptiones que no son tratadas por las clases Action. Cualquier <exception-mapping> definido bajo el elemento <global-exception-mappings> se debe referir a un result definido en el elemento <global-results>. <package ...> <global-results> <result name="error">/jsp/Error.jsp</result> <result name="sqlError">/jsp/SQLError.jsp</result> </global-results>   <exception-mapping exception="java.sql.SQLException" result="sqlError"/> <exception-mapping exception="java.lang.Exception" result="error"/> </global-exception-mappings> </package> Sub-elementos <exception-mapping> <exception-mapping> El elemento <exception-mapping> permite capturar exceptions producidas en al lógica (Actions). Atributos Ejemplo <package ...> <action name="action" ...> <exception-mapping exception="java.lang.Exception" result="error"/> <exception-mapping exception="java.sql.SQLException" result="sqlError"/> ... </action> </package> Atributo Obligatorio Tipo Dato Descripción name String Nombre del exception-mapping exception X Especifica el tipo de Exception que captura result Especifica la referencia del result a mostrar.

CURSO STRUTS 2 CONFIGURACIÓN struts.xml <package> <global-results> El elemento <global-result> especifica los results globales para el package, los cuales se ejecutarán si un <action> no encuentra su elemento <result>. <package ...> <result name="error">/jsp/Error.jsp</result> <result name="sqlError">/jsp/SQLError.jsp</result> </global-results> </package> Sub-elementos <result> <result> El elemento <result> define el Result que se debe invocar tras la ejecución del Action (“SUCCESS”, “INPUT”, “ERROR”,…). Atributos El elemento <result> permite incluir en su cuerpo elementos <param> o definir un valor de tipo String, que utilizará el Result seleccionado: Ejemplo <package ...> <action ...> <result>/jsp/success.jsp</result> <result name=”FAIL”>/jsp/fail.jsp</result> </action> <result type="chain"> <param name="actionName">action3</param> <param name="namespace">/namespace2</param> </result> </package> Atributo Obligatorio Tipo Dato Descripción name String Nombre del result que debe coincidir con la respuesta del Action para ejecutar el Result. Por defecto es SUCCESS type Alias del Result que ejecuta el Result, por defecto es dispatcher.

struts.xml CURSO STRUTS 2 CONFIGURACIÓN <package> <action> El elemento <action> representa un Action. Atributos El único atributo obligatorio es name, si no se especifica la clase (class) se ejecutará la clase ActionSupport o la definida en el elemento <default-ref-class>. También si no se especifica el atributo method se ejecutará el método execute(). Ejemplo <package ...> <action name="login" class="ejercicio.capitulo2.Registro" method="login"> ... </action> </package> Sub-elementos <exception-mapping> <interceptors>, <interceptor-ref> y <interceptor-stack> <params> <results> Atributo Obligatorio Tipo Dato Descripción name X String Nombre del Action class Clase Java asociada con el Action method El nombre del método del Action a invocar converter El convertidor para este Action <exception-mapping> El elemento <exception-mapping> permite capturar exceptions producidas en al lógica (Actions). Atributos Ejemplo <package ...> <action name="action" ...> <exception-mapping exception="java.lang.Exception" result="error"/> <exception-mapping exception="java.sql.SQLException" result="sqlError"/> ... </action> </package> Atributo Obligatorio Tipo Dato Descripción name String Nombre del exception-mapping exception X Especifica el tipo de Exception que captura result Especifica la referencia del result a mostrar. <result> El elemento <result> define el Result se debe invocar tras la ejecución del Action (“SUCCESS”, “INPUT”, “ERROR”,…). Atributos El elemento <result> permite incluir en su cuerpo elementos <param> o definir un valor de tipo String, que utilizará el Result seleccionado: Ejemplo <package ...> <action ...> <result>/jsp/success.jsp</result> <result name=”FAIL”>/jsp/fail.jsp</result> </action> <result type="chain"> <param name="actionName">action3</param> <param name="namespace">/namespace2</param> </result> </package> <param> El elemento <param> se utiliza para definir variables constantes al elemento en el que se encuentre anidado. Atributos Ejemplo <package ...> <action ...> <param name="atributoAction" value="valorAtributo"/> </action> </package> Atributo Obligatorio Tipo Dato Descripción name String Nombre del result que debe coincidir con la respuesta del Action para ejecutar el Result. Por defecto es SUCCESS type Alias del Result que ejecuta el Result, por defecto es dispatcher. Atributo Obligatorio Tipo Dato Descripción name X String Nombre de la propiedad value Valor de la propiedad CURSO STRUTS 2 CONFIGURACIÓN

CURSO STRUTS 2 CONFIGURACIÓN struts-default.xml El archivo struts-default.xml es la configuración por defecto y se encuentra empaquetado dentro del JAR struts-core.jar. Define los Interceptors y los tipos Result que implementa el framework, además de definir el package struts-default el cual se puede extender para utilizar la configuración definida por Struts 2.

CURSO STRUTS 2 CONFIGURACIÓN struts.properties El archivo struts.properties se puede crear para sobrescribir la configuración del framework, este archivo se debe ubicar bajo el directorio /WEB-INF/classes, para que el framework cargue automáticamente los valores de la configuración cuando arranca la aplicación. Parámetros Configurables La lista de atributos de la configuración del framework Struts 2 se puede encontrar en el archivo struts-default.properties dentro del JAR struts2-core.jar. Ejemplo Archivo struts.properties: #idioma defecto español struts.locale=es_ES #object factory gestionado por spring struts.objectFactory = spring #extensión .do para todas las URIs struts.action.extension=do #no permitir cache en el navegador cliente struts.serve.static.browserCache=false También se pueden sobrescribir propiedades de la configuración en los archivos de configuración XML, mediante el elemento <constant>. <constant name=”struts.action.extension” value=”do”/> Atributo Valor Defecto Descripción struts.i18n.encoding UTF-8 codificación por defecto struts.locale idioma por defecto de la aplicación struts.configuration define la clase que gestiona la configuración del framework struts.objectFactory la factoría de objetos por defecto del framework, aquí se puede definir “spring” para trabajar con el framework Spring. struts.objectFactory.spring.autoWire name especifica la tecnología autoWire de Spring cuando trabaja con Struts 2 struts.objectFactory.spring.useClassCach e true indica si en la integración struts-spring se deben cachear las clases struts.objectFactory.spring.autoWire.alwa ysRespect false asegura que se siempre se respete la tecnología autoWire marcada para Spring struts.objectTypeDeterminer determinador de objeto por defecto struts.multipart.parser jakarta analizador de las peticiones HTTP Post struts.multipart.saveDir directorio donde guardar los archivos enviados struts.multipart.maxSize 2097152 tamaño máximo en bytes de los archivos que se podrán enviar struts.custom.properties carga configuración alternativa struts.mapper.class clase que gestiona los mapeos de URI a Action struts.action.extension action extensión por defecto de todas las URI invocado a los action struts.serve.static permite al Servlet Filter de Struts enviar contenido estático (CSS, JavaScript). struts.serve.static.browserCache envía información en la cabecera HTTP (header) para que el navegador del cliente guarde las peticiones en cache. struts.enable.DynamicMethodInvocation permite realizar invocaciones a objetos dinámicamente, como /action!metodo.action struts.enable.SlashesInActionNames notación / en las URI /action/metodo.action struts.tag.altSyntax sintaxis alternativa %{} para expresiones OGNL struts.devMode permite trabajar en modo desarrollo struts.i18n.reload permite recargar los archivos de idiomas dinámicamente durante la ejecución struts.ui.theme xhtml tema por defecto del tag los de Struts 2 struts.ui.templateDir template directorio por defecto donde se encuentras los elementos del template (CSS, JavaScript) struts.ui.templateSuffix ftl tipo template por defecto, puede ser: ftl, vm o jsp struts.configuration.xml.reload permite recargar dinámicamente la configuración durante la ejecución struts.velocity.configfile velocity.properties archivo defecto configuración velocity struts.velocity.contexts lista de VelocityContext struts.velocity.toolboxlocation localización Velocity Toolbox struts.url.http.port 80 puerto defecto para construir URI (http) struts.url.https.port 443 puerto defecto para construir URI seguras (https) struts.url.includeParams none posibles valores none, all o get struts.custom.i18n.resources permite definir archivos de recursos de texto personalizados struts.dispatcher.parametersWorkaround struts.freemarker.manager.classname clase gestor contenido FreeMarker struts.freemarker.templatesCache cache tecnología FreeMarker struts.freemarker.beanwrapperCache struts.freemarker.wrapper.altMap struts.freemarker.mru.max.strong.size 100 struts.xslt.nocache cache tecnología XSLT struts.mapper.alwaysSelectFullNamespac e utilizar siempre el namespace completo struts.ognl.allowStaticMethodAccess permite acceder métodos estáticos mediante OGNL

CURSO STRUTS 2 CONFIGURACIÓN struts-plugin.xml El archivo struts-plugin.xml se encuentra en el directorio raíz de cada plug-in de Struts 2 (JAR), como por ejemplo struts2-codebehind-plugin.jar. Se utiliza para definir la configuración de un plugin que se integre con Struts 2. DocType El archivo de configuración struts-plugin.xml utiliza la misma configuración y DTD que el archivo struts.xml, permitiendo definir de la misma forma elementos: <constant>, <bean>, <include> y <package>, junto a sus sub-elementos. Ubicación El lugar apropiado de este archivo sería empaquetado en el directorio raíz un JAR, el cual fuese un plugin para integrar con el framework, de esta forma el plugin tiene su propia configuración. Contenido El contenido por defecto del archivo struts-plugin.xml es: <?xml version="1.0" encoding="UTF-8" ?> <!-- /* * $Id: struts-plugin.xml 663603 2008-06-05 13:29:25Z musachy $ * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ --> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">   <struts> <bean type="com.opensymphony.xwork2.UnknownHandler" class="org.apache.struts2.codebehind.CodebehindUnknownHandler" /> <bean type="com.opensymphony.xwork2.config.PackageProvider" name="codebehind" class="org.apache.struts2.config.ClasspathPackageProvider" /> <constant name="struts.codebehind.pathPrefix" value="/"/> <constant name="struts.codebehind.defaultPackage" value="codebehind-default"/> <constant name="struts.mapper.alwaysSelectFullNamespace" value="true" /> <package name="codebehind-default" extends="struts-default"> </package> </struts>

CURSO STRUTS 2 CONFIGURACIÓN RECUERDA QUE… web.xml struts.xml descriptor de despliegue es el archivo principal y obligatorio, para permitir el funcionamiento del framework, define el Filter del framework para capturar todas las peticiones. <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="...">   <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>ejemplo.capitulo2.actions</param-value> </init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts/struts-config.xml</param-value> </filter> <filter-mapping> <url-pattern>/*</url-pattern> </filter-mapping> <!-- ... --> </web-app> struts.xml archivo opcional de configuración XML de la aplicación, contendrá Results, packages, Actions, Interceptors…. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">  <struts> <include file="/ejemplo/capitulo2/Capitulo2.xml"/> <constant name=”struts.devMode” value=”true”/> <bean name=”uniqueBean” type=”Interface” class=”ejemplo.capitulo2.MiBeanClass”/> <package ...> <result-types> <result-type name="dispatcher" class="..." default="true"/> </result-types> <interceptors> <interceptor name="validation" class="..."/> </interceptors> <action name="login" class="ejercicio.capitulo2.Registro" method="login"> ... </action> </package> </struts> CURSO STRUTS 2 CONFIGURACIÓN RECUERDA QUE… Completado el apartado recordamos aquellos puntos más importantes, mostrando información de cada uno de los distintos archivos de configuración de Struts 2: web.xml struts.xml struts-default.xml struts.properties struts-plugin.xml struts-default.xml El archivo struts-default.xml es la configuración por defecto y se encuentra empaquetado dentro del JAR struts-core.jar. Define los Interceptors y los tipos Result que implementa el framework, además de definir el package struts-default el cual se puede extender para utilizar la configuración definida por Struts 2. struts.properties archivo opcional que contendrá la configuración del propio framework. La lista de atributos de la configuración del framework Struts 2 se puede encontrar en el archivo struts-default.properties dentro del JAR struts2-core.jar. struts-plugin.xml El archivo struts-plugin.xml se encuentra en el directorio raíz de cada plug-in de Struts 2 (JAR), se utiliza para definir la configuración del plugin. El archivo de configuración struts-plugin.xml utiliza la misma configuración y DTD que el archivo struts.xml, permitiendo definir de la misma forma elementos: <constant>, <bean>, <include> y <package>, junto a sus sub-elementos. Atributo Valor Defecto Descripción struts.i18n.encoding UTF-8 codificación por defecto struts.locale idioma por defecto de la aplicación struts.configuration define la clase que gestiona la configuración del framework struts.objectFactory la factoría de objetos por defecto del framework, aquí se puede definir “spring” para trabajar con el framework Spring. struts.objectFactory.spring.autoWire name especifica la tecnología autoWire de Spring cuando trabaja con Struts 2 struts.objectFactory.spring.useClassCach e true indica si en la integración struts-spring se deben cachear las clases struts.objectFactory.spring.autoWire.alwa ysRespect false asegura que se siempre se respete la tecnología autoWire marcada para Spring struts.objectTypeDeterminer determinador de objeto por defecto struts.multipart.parser jakarta analizador de las peticiones HTTP Post struts.multipart.saveDir directorio donde guardar los archivos enviados struts.multipart.maxSize 2097152 tamaño máximo en bytes de los archivos que se podrán enviar struts.custom.properties carga configuración alternativa struts.mapper.class clase que gestiona los mapeos de URI a Action struts.action.extension action extensión por defecto de todas las URI invocado a los action struts.serve.static permite al Servlet Filter de Struts enviar contenido estático (CSS, JavaScript). struts.serve.static.browserCache envía información en la cabecera HTTP (header) para que el navegador del cliente guarde las peticiones en cache. struts.enable.DynamicMethodInvocation permite realizar invocaciones a objetos dinámicamente, como /action!metodo.action struts.enable.SlashesInActionNames notación / en las URI /action/metodo.action struts.tag.altSyntax sintaxis alternativa %{} para expresiones OGNL struts.devMode permite trabajar en modo desarrollo struts.i18n.reload permite recargar los archivos de idiomas dinámicamente durante la ejecución struts.ui.theme xhtml tema por defecto del tag los de Struts 2 struts.ui.templateDir template directorio por defecto donde se encuentras los elementos del template (CSS, JavaScript) struts.ui.templateSuffix ftl tipo template por defecto, puede ser: ftl, vm o jsp struts.configuration.xml.reload permite recargar dinámicamente la configuración durante la ejecución struts.velocity.configfile velocity.properties archivo defecto configuración velocity struts.velocity.contexts lista de VelocityContext struts.velocity.toolboxlocation localización Velocity Toolbox struts.url.http.port 80 puerto defecto para construir URI (http) struts.url.https.port 443 puerto defecto para construir URI seguras (https) struts.url.includeParams none posibles valores none, all o get struts.custom.i18n.resources permite definir archivos de recursos de texto personalizados struts.dispatcher.parametersWorkaround struts.freemarker.manager.classname clase gestor contenido FreeMarker struts.freemarker.templatesCache cache tecnología FreeMarker struts.freemarker.beanwrapperCache struts.freemarker.wrapper.altMap struts.freemarker.mru.max.strong.size 100 struts.xslt.nocache cache tecnología XSLT struts.mapper.alwaysSelectFullNamespac e utilizar siempre el namespace completo struts.ognl.allowStaticMethodAccess permite acceder métodos estáticos mediante OGNL