Acceder a una variable de Struts2 dentro de un JSP

Struts2 tiene su forma particular de pasar valores desde el controlador a la vista, no usando los clásicos ámbitos como request, session o application, sino que utilizar una pila de valores a la que se acceder mediante el lenguaje OGNL.

Gracias a las librerías de tags de Struts2 es sencillo acceder a estos valores para hacer operaciones rutinarias, pero a veces queremos, dentro de una página JSP tocar los objetos dentro de los snippets para hacer alguna operación más compleja. Como no están en los “scopes” clásicos, sino en la pila de valores, es algo complicado. Utilizando una combinación de tags de Struts2 y JSP se puede hacer:

En este ejemplo iteramos mediante un tag de Struts2 sobre una lista que obtenemos de un objeto que está en la pila llamado “syllabus” y que tiene un método llamado getCvList() que devuelve un objeto de tipo List de objetos de la clase “entities.Cv”

<s:iterator value="syllabus.cvList" >
   <s:set name="cv" scope="page"/>
   <jsp:useBean id="cv" class="entities.Cv" scope="page"/>
   <%
      cv.getNombre().equals.... (o el código que sea..)
   %>
</s:iterator>

El tag de Struts2 s:set tomará el valor de la cima de la pila, que en este caso es el objeto n-ésimo de la iteración y lo asignará a la variable “cv”. A su vez, mediante el tag de JSP useBean, lo podremos “bajar” al nivel de código JSP para poder usarlo en el snippet mediante código Java.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s