lunes, julio 16, 2007

Struts 2 - Round 2 - Accediendo a la sesión

Seré breve. En el post anterior vimos que los nuevos Action de Struts son clases bastantes simples, lo único que hubo que tener en cuenta es que heredaba funcionalidad de la clase ActionSupport.
También sabemos que aplicando el patrón "dependency injection", Struts 2 automáticamente llenaba todos los atributos de mi clase (siempre y cuando tuvieran el mismo nombre que en el form y su correspondiente método set).
Bien, pero el método execute() no recibe ningún parámetro como lo recibíamos en Struts 1. ¿Cómo accederemos a la sesión, al request, al response, a cookies, a los objetos de mensajes y errores?

La respuesta se encuentra en las interfaces y los interceptors que el framework nos proporciona, por ejemplo:
  • org.apache.struts2.interceptor.ApplicationAware
  • org.apache.struts2.interceptor.CookiesAware
  • org.apache.struts2.interceptor.ParameterAware
  • org.apache.struts2.interceptor.ServletRequestAware
  • org.apache.struts2.interceptor.ServletResponseAware
  • org.apache.struts2.interceptor.SessionAware
  • com.opensymphony.xwork2.ValidationAware
Como ven, todo lo que diga "Aware" hace que nuestro action pueda acceder a una variedad de objetos adicionales con los cuales trabajar. Recuerden que los action deberían ser una capa intermedia entre la capa de negocio y la de presentación y nunca deberíamos utilizarlos como objetos de negocio.

Cada una de estas interfaces nos hará agregar métodos adicionales para recibir de Struts, el objeto deseado (nuevamente por dependency injection). Por supuesto, la mayoría de estos métodos son del tipo set.

Esto es bastante fácil de utilizar, si necesitan código de ejemplo, sólo deben solicitarlo.

Saludos

16 Comments:

At 12:36 p. m., Anonymous Anónimo said...

Hola estoy empezando a trabajar con struts 2 si publicaras un ejemplo de como subir un archivo al servidor

 
At 2:54 p. m., Anonymous Anónimo said...

Podrian public un ejemplo utilizando el ServletRequestAware por favor diegor7@hotmail.com

 
At 9:39 p. m., Anonymous Anónimo said...

Buenas noches, soy nuevo en el tema de struts2, debo implemtar una aplicacion para mi empresa y me gustaria implementarla con esta herramienta me podrias hacer llega codigo donde se realice el manejo y control de las session.

 
At 9:39 p. m., Anonymous Anónimo said...

mi correo jvalsan@gmail.com

 
At 1:54 p. m., Anonymous Anónimo said...

Gracias por la contribución a los internautas.

Sabes de algun plugin gratis que me permita generar el modelo MVC de struts 2.

Esperando pronta respuesta, me despido

Freddy Arriaga Lino

 
At 11:36 a. m., Anonymous Anónimo said...

Por favor, necesito un codigo de ejemplo de struts 2. Muchas gracias

planetalider@gmail.com

 
At 7:27 p. m., Anonymous Anónimo said...

Buenas noches, soy nuevo en struts2.... podrias por favor enviarme codigos de ejemplos de el uso de las interfaces e interceptors... gracias de antemano. mi correo: lobodaniels@gmail.com

 
At 4:18 p. m., Anonymous Anónimo said...

Soy nuevo en struts, sera q podrias enviarme un ejemplo de como funciona struts con los formularios? y con lo de los aware, si no fuera mucha molestia

sergiogut@gmail.com

 
At 10:48 a. m., Anonymous Anónimo said...

Hola estoy usando struts 2 y es alucinante pero me falta aprendar a como usar los awares, si fueras tan amable de pasarme ejemplos, este es mi correo: jobs_lizardo@hotmail.com
gracias de antemano.

 
At 6:06 p. m., Blogger Rainer Larin said...

me podrias mandar el ejemplo Gracias mi email: larinrainer@gmail.com

 
At 4:09 p. m., Anonymous Anónimo said...

me mandarias el codigo

jmezzalira@hotmail.com

gracias!
Juan Pablo

 
At 8:05 a. m., Anonymous Anónimo said...

si me pudieses pasar un ejemplo con este round2, muchisimas gracias!!!! un gran trabajo

 
At 7:05 p. m., Anonymous Anónimo said...

Realmente es muy interesante el tema de interfaces e interceptors, podria enviarme código para aprender algo más sobre ello. Gracias de antemano.
Mi correo es rmeliag@gmail.com

 
At 7:58 a. m., Anonymous Anónimo said...

Hola, estoy empezando con struts2 y no encuentro la forma de pasar los datos de una consulta de base de datos a una jsp.

Consigo conectarme a la base de datos, y hacer la consulta mostrando los resultados en la consola con System.out.println(columnas) pero quiero sacarlo en una jsp. ¿Podrias decirme como lo hago y mandarme algun ejemplo? Mi correo es cgcollantes@hotmail.com

 
At 5:54 a. m., Blogger Ana said...

Estoy trabajando en un proyecto con portlet lifeRAY + struts2 + display table
tengo una MiaccionAction extends ActionSupport y dejo en la sesion una lista de esta manera sesion.put("emplP", listaE)
se que tiene valores porq la recojo y la recorro en la JSP DE esta manera
.....
el problema está q. necesito mostrar los datos en un
y no lo muestra tengo todas las librerias de display table y todo... xq si me creo mi lista en la JSP ...DE esta manera ..
<% List testData = new ArrayList(); .....
Map map7 = new TreeMap();
map7.put( "id", "7" );
map7.put( "firstName", "lola" );
map7.put( "email", "JOOOOOOOcaracola@gm.com" ); testData.add( map7 );
session.setAttribute( "testdata", testData ); %>
SI Q. LA PINTA ...
osea si me creo la lista en mi pagina y la meto en la session.setA...si funciona ...pero si en mi action la meto con sesion.put.... no lo encuentra...
¿Alguien sabe x donde van los tiros...? cuando no estaba en portlet SI ..funcionaba ...
pero ahora debe funcionA con portlet y debe ser q. las sesiones son distintas???
COmo implemento x favor el SESSIONSCOPE??? AYUDA POR FAVOR

 
At 5:55 a. m., Blogger Ana said...

mi correo es lalunadeana@gmail.com
para la ayuda sobre Estoy trabajando en un proyecto con portlet lifeRAY + struts2 + display table

 

Publicar un comentario

<< Home