Professional Documents
Culture Documents
Etiquetas Struts 2:
El framework struts contiene las etiquetas necesarias para manejar todo lo que
se necesita en una aplicacin web, las etiquetas se dividen en dos tipos
etiquetas genricas y etiquetas de UI, en este documento vamos a ver las
etiquetas genricas. La principal diferencia entre las genricas y las UI es que
las genricas dan salida al contenido directamente desde la etiqueta, mientras
que las UI necesitan o usan plantillas y frecuentemente un grupo de salida
junto con ellas. Para ingresar a la pgina oficial de struts ir a la direccin web
https://struts.apache.org/docs/tag-reference.html
Para trabajar en esta clase usaremos el nuevo proyecto llamado struts04. La
finalidad del proyecto ser manipular la informacin de un estudiante, a
medida que se avanza en el estudio de las etiquetas, veremos tambin su
funcionalidad en el proyecto. El estudiante va a ingresar datos como:
documento, nombre, semestre, estudios, sexo, fecha nacimiento, entre otros.
Proyecto struts04_Etiquetas:
Seguir los siguientes pasos para desarrollar el proyecto.
package controladorEtiquetas;
import com.opensymphony.xwork2.ActionSupport;
public class ControladorPrincipal extends ActionSupport{
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}
}
<struts>
Proyecto struts04_Etiquetas
<h2>Pagina formulario ingresar datos estudiante. Tema xhtml, los otros temas
son css_xhtml y simple</h2>
</body>
</html>
Para el ejemplo se tienen tres campos de texto para recoger la informacin del
estudiante y un botn para enviar la informacin a la siguiente accin. Una vez
recogida la informacin en el formulario; es necesario hacer algo con ella, aqu aparece
el concepto de Modelo en el MVC (Modelo Vista Controlador).
Crear el modelo:
Es decir una clase llamada Estudiante.java, para organizacin se crea en un paquete
llamado modelos. La clase debe implementar serializable y tener los atributos que se
recogen en la pagina JSP de ingresarDatos. La ubicacin en el proyecto de la clase
Estudiante.java que forma parte del Modelo es.
Proyecto struts04_Etiquetas
package modelos;
import java.io.Serializable;
import modelos.Estudiante;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
estudiante = new Estudiante();
estudiante.setDocumento(this.documento);
estudiante.setNombre(this.nombre);
estudiante.setCorreo(this.correo);
return SUCCESS;
}
//aqu van los getters y setters
}
Con lo anterior lo que se ha hecho es coger los datos del formulario y guardarlos en
una instancia de la clase Estudiante. Normalmente estos datos van a ser guardados en
una base de datos o algo similar.
Para este ejemplo, se van a mostrar en otra pgina JSP que se va a llamar
mostarDatos.jsp para verificar que si se realiz bien la guardada de los datos.
Colocar la anotacin:
La anotacin a colocar es
@RequiredStringValidator(message="El documento es un
campo obligatorio")
public void setDocumento(String documento) {
this.documento = documento;
}
<s:fielderror />
<s:form action="mostrar" theme="xhtml">
<s:textfield name="documento" label="Documento"
required="true"></s:textfield>
<s:textfield name="nombre" label="Nombre"></s:textfield>
<s:textfield name="correo" label="Correo"></s:textfield>
If elseif else:
Si la condicin en la etiqueta <s: if> se evala como "true", slo se evala esta
etiqueta y se descartan otras.
Si la condicin en la etiqueta <s: if> se evala como "false" y la etiqueta <s:
elseif> se evala como "true", se procesa el cuerpo de la etiqueta <s: elseif>.
Si la condicin en etiquetas <s: if> y <s: elseif> se evala como "false", slo
se procesa la etiqueta <s: else>.
Ejemplo:
Iterator:
Ya vimos un ejemplo sencillo de esta etiqueta, ahora ver cmo funciona usando
informacin que este en una clase.
IteratorStatus:
La siguiente es la informacin de la clase IteratorStatus
The iterator tag can export an IteratorStatus object so that one can get information about the
status of the iteration, such as:
index: current iteration index, starts on 0 and increments in one on every iteration
count: iterations so far, starts on 1. count is always index + 1
first: true if index == 0
Proyecto struts04_Etiquetas
Ejemplo:
Para el ejemplo crear un arrayList en la clase java y recorrerlo con el iterator de
struts.
Crear la variable de coleccin en la clase java.
o private List<String> lenguajes;
o crear los mtodos de acceso
o llenar la variable de coleccin, puede ser en el mtodo execute.
En la pgina jsp
o Colocar la etiqueta iterator
o Mostrar los datos del arrayList
Proyecto struts04_Etiquetas
Sort:
Ordena una lista, tiene los siguientes atributos.
Subset:
Obtiene un subconjunto de un iterador. Tiene los siguientes atributos.
Ejemplo:
Necesitamos crear un objeto de tipo decider en la clase de accin. Con sus
respectivos mtodos de acceso. Para el ejemplo crear el decider para que
retorne todo lo que est en la lista y comienza con la letra C. Podemos usar
otra caracterstica de la lista, como por ejemplo matches, end, content, entre
otras. Como los elementos de la lista son de tipo String, se castea el objeto en
el decider a String. Por eso podemos acceder a los mtodos del objeto String,
como startWith.
En la pgina jsp. Crar el tag Subset, con los atributos que vamos a manejar.
Para este ejemplo decider, source y var.
Generator:
Genera un nuevo iterador. Los valores se obtienen dividiendo la cadena val
usando como separador el carcter indicado en separator. Tiene los siguientes
atributos:
converter: Objeto de tipo Converter con el que realizar las distintas
operaciones que sean necesarias con cada valor.
count: Nmero mximo de elementos que queremos generar.
Proyecto struts04_Etiquetas
Ejemplo:
En la clase java se tiene que crear una instancia del objeto Converter con sus
respectivos mtodos de acceso. Para este ejemplo la lista tiene objetos String,
por eso se castea a String el convertidor.
Append:
Crea un nuevo iterador a partir de varios iteradores pasados como parmetro
en forma de etiquetas param. Como resultado muestra los datos de un iterador
y despus los del siguiente iterador y asi sucesivamente. Tiene los siguientes
atributos.
var: el nombre que tendr el iterador resultante en el ValueStack.
Ejemplo:
En la clase java se crea dos arrayList para el ejemplo lista1 y lista2, se llenan y
se generan sus mtodos de acceso.
Merge:
Crea un nuevo iterador unin de los distintos iteradores pasados como parmetro mediante
etiquetas param. En liugar de mostrar los datos de una coleccin y luego los de la otra, esta
etiqueta muestra:
Ejemplo:
En la clase java se crean dos collecciones con sus respectivos mtodos de acceso y se
llenan.
Proyecto struts04_Etiquetas
En la pgina jsp se utiliza la etiqueta merge, se agregan las colecciones usando el atributo
param y por ltimo se itera, para ver los resultados.
Proyecto struts04_Etiquetas
Set:
Asigna un valor a una variable, opcionalmente indicando el mbito al que aadirla. El valor
se puede indicar utilizando el atributo value, o encerrando el valor en la propia etiqueta.
Tiene los siguientes atributos
Ejemplo:
En la pgina jsp que se vaya a utilizar
Bean:
Instancia un Java Bean. Se puede pasar valores a las propiedades del bean utilizando
etiquetas param.
name (requerido): La clase a instanciar. Debe respetar la especificacin para las clases
java Bean.
Ejemplo:
Para la clase java Bean, crear una clase con las caractersticas de java Bean, llamada
BeanEmpleado, con los atributos documento, nombre, direccin, sueldo.
Proyecto struts04_Etiquetas
Date:
Permite mostrar una fecha almacenada en una cierta variable indicando opcionalmente el
formato a utilizar.
format: Formato a utilizar para mostrar la fecha. Si queremos usar siempre el mismo
formato podemos crear un archivo properties con una entrada struts.date.format. Por
defecto se utiliza el formato DateFormat.MEDIUM.
nice: Utiliza un formato que facilita la lectura. Por defecto se utiliza ingls para mostrar
los mensajes; si queremos traducirlo a algn otro idioma tendremos que recurrir a las
funciones de internacionalizacin de Struts 2. Las claves a traducir son las siguientes:
Ejemplo:
En este ejemplo se crearan dos variables tipo Date en la clase java. Una Calendar, para
configurar la fecha actual y la fecha de ao nuevo.
Include:
para que sea dinmico con etiquetas param, pero estos valores no se acceden como
propiedades de ValueStack, sino como parmetros de la peticin. En el ejemplo se puede
apreciar cmo se accede a estos parmetros. Este tag (include), lo que hace es colocar el
contenido de la pgina llamada, en el sitio de la pgina que hace el llamado.
Ejemplo:
Crear una pgina jsp llamada miInclude.jsp, en otra pgina la llamamos con el tag include y
sus parmetros,
Pagina jsp que es llamad con el tag y forma de ver el parmetro enviado
Proyecto struts04_Etiquetas
Push:
Coloca un Bean y luego puede ser usado el bean dentro de la etiqueta push de
forma ms simple. Los atributos que usa push son:
Value: obligatorio, es el bean, debe colocarse el nombre de la variable bean
Ejemplo:
En la pagina jsp donde se va a utilizar la etiqueta.
Proyecto struts04_Etiquetas