generic tagscurso struts 2 en el siguiente apartado del curso se mostrará el grupo de tags generic...

26
GENERIC TAGS CURSO 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 ellas. La información que se estudiará en este apartado es: •¿Qué son las Generic Tags? •Tipos de Generic Tags •Control Tags •Data Tags

Upload: fernando-maldonado-blanco

Post on 23-Jan-2016

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

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 ellas.

La información que se estudiará en este apartado es:

•¿Qué son las Generic Tags?

•Tipos de Generic Tags

•Control Tags

•Data Tags

Page 2: 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

GENERIC TAGSCURSO STRUTS 2

¿QUÉ SON LAS GENERIC TAGS ?

Las Generic Tags de Struts 2 es una librería de etiquetas, que son utilizadas para el control de las páginas cuando la Vista es procesada, permitiendo labores de procesamiento sobre los datos.

Uso de las Generic TagsPara poder utilizar las Generic Tags de Struts 2 sólo hay que invocar a la siguiente directiva:<%@ taglib prexif=”s” uri=”/struts-tags”%>

Para cualquier parámetro de los tags se pueden asignar distintos valores: valor estático o expresión OGNL. Para que se evalúen el valor del atributo del tag, como una expresión OGNL es necesario que el valor esté delimitado por la sintaxis de OGNL, %{ }.. . . test=”usuario” . . . //test= varlo fijo “usuario”. . . test=”%{usuario}” . . . //test= valor OGNL “usuario” (dinámico). . . test=”%{#session.usuario}” . . . //test= valor OGNL “#session.usuario”. . . test=”%{5 + 5}” . . . //test= valor OGNL igual a 10

Generic Tags VS UI TagsLa mayor diferencia entre las generic tags y las UI tags es, que las generic tags devuelven la respuesta directamente, mientras que las UI tags utilizan plantillas (templates) para representar su respuesta en función del theme seleccionado.

Page 3: 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

GENERIC TAGSCURSO STRUTS 2

TIPOS DE GENERIC TAGS

Las generic tags se pueden dividir en dos grupos en función de su objetivo:

Control Tags Data Tags.

Data TagsLas data tags se utiliza para manipular o crear datos, como los bean o mensajes i18n

Ejemplo<s:include value="/jsp/cabecera.jsp"/><s:include value="/jsp/principal.jsp">

<s:param name="param1" value="value2"/>

<s:param name="param2" value="value2"/> </s:include><s:include value="/jsp/pie.jsp"/>

Control TagsLas control tags son utilizadas para controlar el flujo en la Vista, como las sentencias if ... else.

Ejemplo<s:if test="#parameters.numero == 1">

Has elegido 1</s:if><s:elseIf test="#parameters.numero == 2">

Has elegido 2</s:elseIf>

Page 4: 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

GENERIC TAGSCURSO STRUTS 2

CONTROL TAGS

Las control tags son utilizadas para controlar el flujo en la Vista, como las sentencias if ... else.

La lista de control tags es:• append• else• elseIf• generator• if• iterator• merge• sort• subset

Page 5: 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

GENERIC TAGSCURSO STRUTS 2

CONTROL TAGS

Tags if, elseIf y elseEstos tres tags se utilizan para formular sentencias condicionales, funcionando de la misma forma que en Java. Los tags if y elseIf requieren de un atributo, mientras que el tag else no tiene ningún atributo.

Atributos

Atributo Tipo Dato Valor Defecto Descripción

test* Boolean Sentencia condicional

Ejemplo<s:if test="#parameters.numero == 1">

Has elegido 1</s:if><s:elseIf test="#parameters.numero == 2">

Has elegido 2</s:elseIf><s:else>

Has elegido otro número distinto a 1 y 2</s:else>

Page 6: 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

GENERIC TAGSCURSO STRUTS 2

CONTROL TAGS

Tag appendEste tag se utiliza para concatenar iterators respetando el orden de los elementos de las listas y el orden e las propias listas.

Atributos

Ejemplo<s:append var="listaCompleta">

<s:param value="#lista1"><s:param value="#lista2">

</s:appen>

Atributo Tipo Dato Valor Defecto Descripción

var String La variable que se creará que referencia el objeto iterator concatenado.

Page 7: 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

GENERIC TAGSCURSO STRUTS 2

CONTROL TAGS

Tag mergeEl tag merge une listas para crear una lista que contenga todos los elmentos. El orden el que se añaden los elementos es alterno, se lee un elemento de cada lista en sucesión.

Atributos

Ejemplo<s:merge var="listaCompleta">

<s:param value="#lista1"><s:param value="#lista2">

</s:merge>

Atributo Tipo Dato Valor Defecto Descripción

var String La variable que se creará que referencia el objeto iterator concatenado.

Page 8: 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

GENERIC TAGSCURSO STRUTS 2

CONTROL TAGS

Tag iteratorEste tag permite recorrer los datos de un array, Collection o un Map, y para cada uno de los elementos del objeto iterable lo almacena en el Value Stack

Atributos

Ejemplo<table>

<s:iterator value="paises" status="status"><s:if test="#status.odd">

<tr class="parRow"></s:if><s:if test="#status.even">

<tr class="imparRow"></s:if>

<td><s:property value="id"/>

</td><td>

<s:property value="nombre"/>

</td></tr>

</s:iterator></table>

Atributo Tipo Dato Valor Defecto Descripción

value String El objeto iterable a mostrar sus datos

status IteratorStatus asignar a una variable que apunte al objeto IteratorStatus

var String Nombre de referencia del elemento actual del objeto iterable.

El objeto IteratorStatus que se obtiene del atributo “status” dispone de los siguientes atributos, que pueden ser útiles en la representación de datos en la bucle.

Propiedad Tipo Dato Descripción

index Integer El índice de la iteración, comenzando en 0

count Integer La iteración actual index + 1

first Boolean Indica si el elemento actual es el primero del objeto iterable

last Boolean Indica si el elemento actual es el último del objeto iterable

even Boolean Indica si el número (count) del elemento actual es par

odd Boolean Indica si el número (count) del elemento actual es impar

modulus Integer Este método toma un Integer y devuelve el módulo del contador

Page 9: 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

GENERIC TAGSCURSO STRUTS 2

CONTROL TAGS

Tag generatorEsta tag se utiliza para crear un iterator and guardarlo en el Value Stack. Al cerrar el tag generator se elimina del Value Stack, por este motivo solo se puede trabajar con el iterator entre las tags de generator

Atributos

Ejemplo<s:generator val="%{'Madrid', 'Barcelona, 'Zaragoza'}" separator=",">

<ul><s:iterator>

<li><s:property/></li></s:iterator></ul>

</s:generator>

Atributo Tipo Dato Valor Defecto Descripción

val* String El código para ser convertido en un iterator

separator* String delimitador que separa la entrada val en elementos para convertir

converter Converter clase Converter para convertir la entrada String pasa en val a un Objeto, debe ser una clase de tipo Converter, que implemente el interface

org.apache.struts2.util.IteratorGenerator count Integer número máximo de elementos en el iterator

var String variable que referencia al iterator resultante

Page 10: 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

GENERIC TAGSCURSO STRUTS 2

CONTROL TAGS

Tag sortEl tag sort permite ordenar los elementos de un iterator.

Atributos

Ejemplo<s:generator val="%{'Madrid', 'Barcelona, 'Zaragoza'}" separator=",">

<ul><s:sort comparator="miComparador">

<s:iterator><li><s:property/></li>

</s:iterator></s:sort></ul>

</s:generator>

Atributo Tipo Dato Valor Defecto Descripción

comparator* java.util.Comparator clase Comparator que se utilizará para realizar la comparación de los elementos

source String origen de datos del iterator para ordenarlo

var String variable que referencia al nuevo iterator resultante ordenado

Page 11: 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

GENERIC TAGSCURSO STRUTS 2

CONTROL TAGS

Tag subsetEste tar permite crear un sublista de un objeto iterator.

Atributos

Ejemplo<s:generator var="ciudades" val="%{'Madrid', 'Barcelona, 'Zaragoza'}" separator=","></s:generator>

<s:subset source="#attr.ciudades" decider="filtroPoblacionDecider"><ul>

<s:iterator><li><s:property/></li>

</s:iterator></ul>

</s:subset>

En el anterior código el atributo decider, invocará al método getFiltroPoblacionDecider(), implementado en el Action el cual realiza un filtro de un listado de ciudades por el número de población.

Atributo Tipo Dato Valor Defecto Descripción

source String origen de datos del iterator

var String variable que referencia al nuevo iterator resultante

count Integer número de entradas en el iterator resultante

decider Decider clase que implemente el interface SubsetIteratorFilter.Decider, el cual determina si una entrada debe ser incluida o no en el iterator resultante.

start Integer índice de comienzo en del iterator definido en el source

Page 12: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Las data tags se utiliza para manipular o crear datos, como los bean o mensajes i18n.

La lista de data tags es:• a• action• bean• date• debug• i18n• include• param• property• push• set• text• url

Page 13: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Tag aEsta tag presenta un enlace HTML (anchor). Puede aceptar todos los atributos que el elemento HTML

AtributosNo dispone de atributos propios

Ejemplo<s:a href="%{url}" cssClass="link">

Enlace</s:a>

Page 14: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Tag actionEl tag action se utiliza para executar un Action y su Result, además añade los parámetros del Action al Context Map del Value Stack

Atributos

Ejemplo<s:action var="loginAction" name="login" namespace="/secure" executeResult="false"/>

Atributo Tipo Dato Valor Defecto Descripción

name* String nombre del Action a ser invocado

namespace String namespace del Action

executeResult Boolean false indica si el resultado del Result debe ser mostrado

flush Boolean true indica si el writer debe realizar un flush al final del Action

ignoreContextParams Boolean false indica si los parámetros de la petición deben ser incluidos cuando se invoca al Action

var String variable que referencia al Action añadido al Context Map

Page 15: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Tag beanEl tab bean crea un JavaBean y lo almacena en el Context Map del Value Stack. Este tag es similar en funcionalidad al tag de JSP <jsp:useBean>

Atributos

Ejemplo<s:bean name=”ejercicio.capitulo3.ConvertidorTemperatura” var=”temperatura”>

<s:param name=”celsius” value=”30”/><s:/bean>30º C = <s:property value=”# temperatura.farenheit”/>º F

Atributo Tipo Dato Valor Defecto Descripción

name* String clase completa del JavaBean para crear

var String variable que referencia al JavaBean añadido al Context Map

Page 16: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Tag dateEl tag date formatea un objeto de tipo Java Date

Atributos

Ejemplo<s:bean name=”java.util.Date” var=”hoy”/>

Hoy (formato original): <s:property value=”#hoy”/><br>

<s:date name=”#hoy” var=”formato1” format=”dd/mm/yyyy”/>Hoy (mm//dd/yyyy): <s:property value=”#formato1”/><br>

<s:date name=”#hoy” var=”formato2” format=”MMM d, yyyy”/>Hoy (MMM d, yyyy): <s:property value=”#formato2”/><br>

Atributo Tipo Dato Valor Defecto Descripción

name* String valor fecha a formatear

format String patrón formato fecha

nice Boolean false indica si aplicar un formato bonito

var String variable que referencia a la fecha formateada añadido al Value Stack

Page 17: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Tag debugEl tag debug devuelve el contenido del Value Stack y otros objetos.

AtributosNo dispone de atributos propios

Ejemplo<s:debug/>

Page 18: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Tag i18nEl tag i18n permite obtener un recurso de mensajes y almacenarlo en el Value Stack para poder utilizarlos

Atributos

Ejemplo<s:i18n name="mensajes">

Entre las etiquetas i18n se puede acceder a los mensajes de mensajes.properties.<br/>

<s:property value="text('clave1')"/><br/><s:text name="clave1"/><br/>

</s:i18n>

Atributo Tipo Dato Valor Defecto Descripción

name* String nombre del recursos de mensajes a utilizar (ej. ejercicio/capitulo3/Persona/resourceBundle)

Page 19: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Tag includeEl tag include muestra la salida de un Servlet o un JSP

Atributos

Ejemplo<s:include value="/jsp/cabecera.jsp"/><s:include value="/jsp/principal.jsp">

<s:param name="param1" value="value2"/> <s:param name="param2" value="value2"/>

</s:include><s:include value="/jsp/pie.jsp"/>

Atributo Tipo Dato Valor Defecto Descripción

value* String el Servlet/JSP para incluir su respuesta

NOTA: Los parámetros (<param/>) son pasados como request parameters, por lo que hay que utilizar la notación EL ${param.ParamName} para visualizarlos. No utilizar el tag <s:property/> para acceder a los parámetros.

Page 20: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Tag paramEl tag param se utiliza para pasar parámetros al tag en el que esté incluido

Atributos

EjemploEl valor del atributo value, siempre se evalua como una expresión OGNL incluso si no sin los delimitadores % {}. //las siguientes asignaciones al parámetro nombre son iguales<s:param name=”nombre” value=”usuario.nombre”/><s:param name=”nombre” value=”%{usuario.nombre}”/>

Para poder utilizar expresiones EL de JSP o texto, hay que definir el valor entre los delimitadores del tag.<s:param name=”nombre”>${header.nombre}</s:param><s:param name=”nombre”>Nombre del usuario en texto</s:param>

Atributo Tipo Dato Valor Defecto Descripción

name* String nombre del parámetro

value String valor del parámetro

Page 21: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Tag propertyEste tar permite crear un sublista de un objeto iterator.

Atributos

Ejemplo<s:property value="id">

<s:property value="#session.usuario" default="No Registrado">

Atributo Tipo Dato Valor Defecto Descripción

value String <top stack> valor para ser mostrado

escape Boolean true los caracteres HTML son escapados

default String valor por defecto si el valor de value es null

Page 22: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Tag pushEl tag push es similar al tag set. La diferencia es que el tag push, coloca un objeto en el Value Stack, no en el Context Map. Otra carácteristica única del tag push es que el objeto estará disponible en el Value Stack solo entre las tags de apertura y cierre de push.

Atributos

Ejemplo<s:push value=”#session.usuario”>

Usuario ID: <s:property value=”idUsuario”/>Nombre: <s:property value=”nombre”/>Email: <s:property value=”email”/>

</s:push>

Atributo Tipo Dato Valor Defecto Descripción

value* String valor para ser colocado en el Value Stack

Page 23: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Tag setEl tag set crea un elemento clave/valor en uno de los siguientes contextos:

• el Context Map del Value Stack• el session map• el application map• el request map• el page map

Atributos

Ejemplo<s:set name=”usuario” value=”#session.usuario”/>

Nombre: <s:property value=”#usuario.nombre”/><br>Email: <s:property value=”#usuario.email”/><br>

Atributo Tipo Dato Valor Defecto Descripción

name String la clave del atributo a crear

value String objeto a ser referenciado por la clave

scope String default el ambito donde obtener la variable, su valor puede ser: application, sessio, request, page o default

Page 24: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Tag textEl tag text muestra un mensaje al usuario en función de su idioma (i18n). El mensaje debe estar en el archivo de recursos de mensajes del mismo nombre que el action que está asociado. Si no se encuentra la propiedad el mensaje, entonces se utilizará por defecto el texto que se encuentre en contenido entre las etiquetas text

Atributos

Ejemplo//El recurso de mensajes contiene la siguiente lineamensaje.buscar=Mensaje Buscar {0}

<s:text name="mensaje.buscar"/>

<s:text name="mensaje.buscar">Texto por defecto si no se encuentra la clave “mensaje.buscar”

</s:text>

<s:text name="mensaje.buscar"> <s:param >Parámetro</s:param>

</s:text>

Atributo Tipo Dato Valor Defecto Descripción

name* String clave del mensaje a mostrar

searchValueStack Boolean true buscar en el Value Stack si no se encuentra la clave del mensaje

var String referencia del texto obtenido mediante el tag

Page 25: 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

GENERIC TAGSCURSO STRUTS 2

DATA TAGS

Tag urlEste tag crea una URL dinámicamente.

Atributos

Ejemplo<s:url var=”urlLogin”

action=”login” namespace=”/secure” scheme=”https” includeParams=”true”/>

Atributo Tipo Dato Valor Defecto Descripción

action String el action que la URL apuntará

anchor String anchor para crear la URL

encode Boolean tru indica si codifica los parámetros

escapeAmp Boolean true indica si debe escaper el carácter ampersnd &

includeContext Boolean true indica si el contexto actual debe ser incluido

includeParams String get puede ser uno de estos tipos: one, get, all

method String el método del action

namespace String el namespace del action

portletMode String modo portlet

scheme String http, https, ftp

value String el valor del destino si no se usa para un action

windowState String para uso de portlets, especifica el estado de la ventana

var String referencia de la url creada mediante el tag

Page 26: 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

GENERIC TAGSCURSO STRUTS 2

RECUERDA QUE…

Completado el apartado Generic Tags debemos recordar los siguientes conceptos estudiados:

Definición Tipos