Introduccion
Los interceptores procesan una invocacion a Action antes y despues de cada llamada. La mayor parte de la funcionalidad del framework esta implementada mediante interceptores. De esta manera se aplican los filtros ante multiples submits, conversion de tipos, propagacion de objetos, la validacion, el upload de ficheros, la preparacion de pagina y más. Es posible aplicar una pila especifica de ellos de manera que establezcamos que caracteristicas necesita soportar una Action.
Ciclo de vida de una Action
Las clases de interceptor se declaran tambien en el fichero de configuración struts.xml utilizando un par clave valor. Los nombres especificados más abajo vienen predeclarados en el fichero struts-default.xml. Es posible declarar nuestros propios interceptores creados para lo cual indicamos el nombre y la clase dentro de la etiqueta.
Lista de Interceptores:
Interceptor |
Name |
Description |
---|---|---|
alias |
Transforma el nombre de parametros que se envían con distinto nombre en las distintas request. |
|
chain |
Hace que las propiedades de la Action anterior esten disponibles en la Action en curso. Se usa comúnmente con el <result type="chain"> (de la acción precedente). |
|
checkbox |
Añade un código automático para gestionar los checkbox no inicializados y los añade como parámetros en la request con un valor por defecto (generamente "false"). Utiliza campos hidden para detectar campos que no se han marcado. Se puede modificar el valor que inicia al principio. |
|
cookie |
Inyecta una cookie con un par nombre-valor configurable en la accion (Since 2.0.7.) |
|
cookieProvider |
Inyecta cookies desde la acción hacia la response (Since 2.3.15.) |
|
conversionError |
Inyecta errores de tipo conversion errors from the ActionContext to the Action's field errors |
|
createSession |
Crea una sesión HttpSession automaticamente, útil con ciertos interceptores, por ejemplo para funcionar correctamente con el el interceptor de tipo TokenInterceptor |
|
debugging |
Aporta varias plantillas de depuración para entender lo que ocurre detrás de la página. |
|
deprecation |
Cuand devMode está activado, marca toda configuración desconocida o desestimada (deprecated) settings |
|
execAndWait |
Ejecuta la Action en segundo plano y a continuación reenvia una respuesta hacia una página intermedia de espera. |
|
exception |
Mapea las excepciones hacia un <result ...> |
|
fileUpload |
Un Interceptor que facilita el upload de ficheros. |
|
i18n |
Guarda la configuración de locale guardada para una user's session. |
|
logger |
Escribe el nombre de la Action hacia un <result...>. |
|
store |
Guarda y recupera mensajes de tipo "action messages / errors / field errors" para una acción que implemente la interfaz ValidationAware, dentro de la sesion. |
|
modelDriven |
Si la Action implementa ModelDriven, apila el resultado de getModel dentro del Value Stack. |
|
scopedModelDriven |
Si la Action implementa ScopedModelDriven, el interceptor recupera ell modelo de la sesion, request, y lo copia en la Action en curso con la llamada setModel. |
|
params |
Establece los parametros de la request en la Action. |
|
prepare |
Si la Action implementa la interfaz Preparable, se realiza la llamada al método prepare. |
|
scope |
Es un sencillo mecanismo para almacenar los parametros de la Action en distintos scopes. |
|
servletConfig |
Permite acceder a HttpServletRequest and HttpServletResponse. |
|
staticParams |
Establece los parametros declarados en struts.xml dentro de la Action. Estos se corresponden con <param> dentro de <action>. |
|
roles |
Una Action solo se ejecutara si el usuario tiene el role de JAAS correcto. |
|
timer |
Devuelve el tiempo que lleva la Action ejecutandose (incluido sus interceptores anidados y la vista) |
|
token |
Verifica la presencia de un token dentro de la Action, lo que previene de request con el mismo contenido (multiple submission). |
|
tokenSession |
Lo mísmo que el Interceptor de tipo Token, pero almacena los datos almacenados en la sesion cuando se ha interceptado un token invalido. |
|
validation |
Realiza la validacion a partir de los validators declarados en action-validation.xml |
|
workflow |
Llama el método validate en nuestra clase de tipo Action. Si los errores de tipo Action se crean entonces se devuelve la vista INPUT. |
|
N/A |
Elimina parametros de la lista de parametros accesibles a la Action. |
|
profiling |
Activa el profiling entre parametros |
|
multiselect |
Como el interceptor de tipo checkbox, detecta que no hay valores seleccionados para un campo con muchos valores (al igual que vimos en el Interceptor de tipo Checkbox). |