Вы находитесь на странице: 1из 15

TALLER DE PROYECTOS I JSTL

ndice
ntroduccin a JSTL................................................................................................................... ...2
Qu es JSTL? (JSP Standard Tag Library)...................................................... ..........................2
Cuales son las ventajas de los JSTL?.................................................................................... ....2
Cuales son las desventajas de los JSTL?....................................................................... ...........2
Cul es el problema con los scriptlets JSP?............................................................................... 3
Como mejoran esta situacin la librera JSTL?............................................................. .............3
Lenguaje de expresin JSTL............................................................................................ ............3
nstalacin y configuracin del JSTL........................................................................ ....................6
Libreras englobada en el JSTL(Tags)................................................................................. .........7
La Librera Core......................................................................................................... ......7
La Librera XML ......................................................................................... .....................9
La Librera 18N & Formatting fmt.......................................................................... ........11
Acceso a la Base de Datos (SQL).............................................................. ..................13
Referencias......................................................................................................... .......................15
UNMSM- FISI PAG. 1
TALLER DE PROYECTOS I JSTL
Introduccin
JSTL responde a la demanda de los desarrolladores de un conjunto de acciones JSP
personalizadas para manejar las tareas que necesitan casi todas las pginas JSP, incluyendo
procesamiento condicional, internacionalizacin, acceso a bases de datos y procesamiento
XML. Esto acelerar el desarrollo de JSPs ms o menos eliminando la necesidad de elementos
de scripting y los inevitables y difciles de encontrar errores de sintaxis, y liberando el tiempo
anteriormente gastado en desarrollar y aprender trillones de acciones personalizadas
especficas del proyecto para estas tareas comunes.
Qu es JSTL !JSP St"nd"rd T"# Li$r"r%&
La librera JSTL es un componente dentro de la especificacin del Java 2 Enterprise Edition
(J2EE) y es controlada por Sun MicroSystems. JSTL no es ms que un conjunto de libreras de
etiquetas simples y estndares que encapsulan la funcionalidad principal que es usada
comnmente para escribir pginas JSP. Las etiquetas JSTL estn organizadas en 4 libreras:
core' Comprende las funciones script bsicas como loops, condicionales, y
entrada/salida.
()*' Comprende el procesamiento de xml y para XML-Transformation.
+)t' Comprende la internacionalizacin y formato de valores como de moneda y
fechas.
s,*' Comprende el acceso a base de datos.
-u"*es son *"s .ent"/"s de *os JSTL
Acelera el desarrollo de JSPs eliminando la necesidad de elementos scrpting y los
errores de sintaxis.
Evita la escritura innecesaria de cdigo ya preparado.
-u"*es son *"s des.ent"/"s de *os JSTL
Los JSTL pueden agregar mayor sobrecarga en el servidor. Los scriptlets y las libreras
de etiquetas son compilados a servlets, los cuales luego son ejecutados por el
contenedor. El cdigo Java embebido en los scriptlets es bsicamente copiado en el
servlet resultante. En cambio, las etiquetas JSTL, causan un poco ms de cdigo en el
servlet. En la mayora de casos esta cantidad no es mensurable pero debe ser
considerado.
Los scriptlets son ms potentes que las etiquetas JSTL. Si desea hacer todo en un
script JSP pues es muy probable que insertar todo el cdigo en Java en l. A pesar
que las etiquetas JSTL proporciona un potente conjunto de libreras reutilizables, no
puede hacer todo lo que el cdigo Java puede hacer. La librera JSTL est diseada
para facilitar la codificacin en el lado de presentacin que es tpicamente encontrado
en la capa de Vista si hablamos de la arquitectura Modelo-Vista-Controlador.
UNMSM- FISI PAG. 0
TALLER DE PROYECTOS I JSTL
-u1* es e* 2ro$*e)" con *os scri2t*ets JSP
La especificacin JSP ahora se ha convertido en una tecnologa estndar para la creacin de
sitios Web dinmicos en Java, y el problema es que han aparecido algunas debilidades:
La recuperacin de objetos fuera del HTTP Request y Session es complicada. Es
necesario hacer el Casting de objetos y esto ocasiona que tengamos que importar ms
Clases en los JSP.
El cdigo Java embebido en scriptlets es desordenado.
Un programador que no conoce Java no puede modificar el cdigo Java embebido,
anulando uno de los mayores beneficios de los JSP: permitir a los diseadores y
personas que escriben la lgica de presentacin que actualicen el contenido de la
pgina.
El cdigo de Java dentro de scriptlets JSP no pueden ser reutilizados por otros JSP, por
lo tanto la lgica comn termina siendo re-implementado en mltiples pginas.
-o)o )e/or"n est" situ"cin *" *i$rer3" JSTL
Esto se da a travs de:
Las etiquetas JSTL encapsulan la lgica como el formato de fechas y nmeros. Usando
los scriptlets JSP, esta misma lgica necesitara ser repetida en todos los sitios donde
es usada, o necesitara ser movida a Clases de ayuda.
Debido a que las etiquetas JSTL son XML, estas etiquetas se integran limpia y
uniformemente a las etiquetas HTML.
Las 4 libreras de etiquetas JSTL incluyen la mayora de funcionalidad que ser
necesaria en una pgina JSP. Las etiquetas JSTL son muy sencillas de usarlas para
personas que no conocen de programacin, a lo mucho necesitarn conocimientos de
etiquetas del estilo HTML.
Las etiquetas JSTL pueden referenciar objetos que se encuentren en los ambientes
Request y Session sin conocer el tipo del objeto y sin necesidad de hacer el Casting.
Los JSP EL (Expression Language) facilitan las llamadas a los mtodos Get y Set en los
objetos Java. Esto no es posible en la versin JSP 1.2, pero ahora est disponible en JSP
2.0. EL es usado extensamente en la librera JSTL.
Len#u"/e de e(2resin JSTL
Es un lenguaje para acceder a datos de varias fuentes en tiempo de ejecucin. Su sintaxis es
considerablemente ms amigable que la de Java, que es el nico lenguaje soportado
directamente por la especificacin JSP 1.2. Todas las acciones JSTL reconocen expresiones
4L (Lenguaje de Expresiones) en sus valores de atributos, y se podran desarrollar acciones
personalizadas para que hicieran lo mismo. Se espera que 4L sea incorporado dentro de la
prxima versin de la especificacin JSP para mejorar su uso para acceder a datos sobre el
lenguaje Java. Si es as, podremos usar expresiones 4L en un valor de atributo de una accin,
o incluso en una plantilla de texto.
EL toma prestada la sintaxis de JavaScript para acceder a estructuras de datos tanto como
propiedades de un objeto (con el operador ".) como con elementos con nombres de un array
(con el operador ["nombre"]). Las propiedades de los componentes JavaBeans y las entradas
java.util.Map, que usan la clave como nombre de propiedad, pueden ser accedidas de esta
forma. Aqu tenemos algunos ejemplos:
${myObj.myProperty}$
${myObj["myProperty"]}$
UNMSM- FISI PAG. 5
TALLER DE PROYECTOS I JSTL
${myObj[ar!it"#"e$ame]}$
Como se observa en el ejemplo anterior, una expresin 4L siempre debe estar encerrada entre
los caracteres ${y} $. Las dos primeras expresiones acceden a una propiedad llamada
myProperty en un objeto representado por una variable llamada myObj. La tercera expresin
accede a una propiedad con un nombre contenido en un variable, esta sintaxis se puede utilizar
con cualquier expresin que evale el nombre de la propiedad.
El operador de acceso a array tambin se usa para datos representados como una coleccin
de elementos indexados, como un array Java o una java.util.List:
${myList[%]}$
${myList[a&ar ' (]}$
Adems de los operadores de propiedad y elemento array y los operadores aritmticos,
relacionales, y lgicos, hay un operador especial para comprobar si un objeto est "vaco" o no
puede ser usado en una expresin 4L.
La siguiente tabla lista todos los operadores:
62er"dor 7escri2cin
. Accede a una propiedad
89 Accede a un elemento de un array/lista
!& Agrupa una sub-expresin
: Suma
- Resta o negacin de un nmero
; o di. Divisin
< o )od Mdulo (resto)
== o e, Comprueba gualdad
>= o ne Comprueba desigualdad
? o *t Comprueba menor que
@ o #t Comprueba mayor que
?= o *e Comprueba menor o igual que
@= o #t Comprueba mayor o igual que
AA o "nd Comprueba AND lgico
BB o or Comprueba OR lgico
> o not Complemento binario booleano
e)2t% Comprueba un valor vaco (null, string vaco, o una coleccin vaca)
Lo que no encontraremos en 4L son sentencias como asignaciones, if/else, o while. Para este
tipo de funcionalidades en JSP se usan los elementos Action. 4L no est pensado para
utilizarse como un lenguaje de programacin de propsito general, slo un lenguaje de acceso
a datos.
Por supuesto, los literales y las variables, tambin son parte del lenguaje. 4L proporciona los
siguientes literales, similares a los que proporcionan JavaScript, Java, y otros lenguajes
similares:
Ti2o de Liter"* 7escri2cin
Strin#
Va encerrada con comillas simples o dobles. Una comilla del mismo
tipo dentro del string puede ser escapada con una barra invertida: (\'
en un string encerrado con comillas simples; \" en un string
encerrado con comillas dobles). El carcter de barra invertida debe
se escapado como \\ en ambos casos.
Inte#er Un signo opcional (+ o -) seguido por dgitos entre 0 y 9.
-o)" F*o"tin# Lo mismo que un literal entero, excepto que usa un punto como
UNMSM- FISI PAG. C
TALLER DE PROYECTOS I JSTL
separador de la parte fraccional y que se puede especificar un
exponente con e o E, seguido por un literal entero.
Doo*e"n true o false.
Nu** null.
Cualquier objeto en uno de los mbitos de JSP (pgina, solicitud, sesin o aplicacin) se puede
utilizar como una variable en una expresin 4L. Por ejemplo, si tenemos un bean con una
propiedad firstName en el mbito de la solicitud bajo el nombre customer, esta expresin 4L
representa el valor de la propiedad firstName del bean.
${customer.)irst$ame}
4L tambin hace que la informacin de la solicitud y la informacin general del contenedor est
disponible como un conjunto de variables implcitas:
E"ri"$*e 7escri2cin
2"r") Map que mapea nombres de parmetros univaluados a String.
2"r")E"*ues
Una coleccin de todos los valores de los parmetros de la solicitud
como un array de valores string por cada parmetro.
Fe"der
Una coleccin de todas las cabeceras de solicitud como un slo valor
string por cada cabecera.
Fe"derE"*ues
Una coleccin de todos los valores de cabecera de la solicitud como
un array de valores string por cada cabecera.
cooGie
Una coleccin con todas las cookies de la solicitud en un slo
ejemplar de javax.servlet.http.Cookie por cada cokkie.
initP"r")s
Una coleccin de todos los parmetros de inicializacin de la
aplicacin en un slo valor string por cada parmetro.
2"#e-onte(t Un ejemplar de la clase javax.servlet.jspPageContext.
2"#eSco2e Una coleccin de todos los objetos en el mbito de la pgina.
re,uestSco2e Una coleccin de todos los objetos en el mbito de la solicitud.
sessionSco2e Una coleccin de todos los objetos en el mbito de la sesin.
"22*ic"tionSco2e Una coleccin de todos los objetos en el mbito de la aplicacin.
Las cinco primeras variables implcitas de la tabla nos ofrecen acceso a los valores de
parmetros, cabeceras y cookies de la solicitud actual. Se muestra en el siguiente ejemplo,
cmo acceder a un parmetro de solicitud llamado list#ype y a la cabecera .
*ser+,gent:
${param.list#ype}
${"eader[-*ser+,gent-]}
Este ejemplo se muestra para usar de un modo adecuado la sintaxis de array para la cabecera,
porque el nombre incluye un guin; con la sintaxis de propiedad, sera interpretado como la
expresin variable "eader.*ser menos el valor de una variable llamada ,gent.
La variable initParameter proporciona acceso a los parmetros de inicializacin que se definen
en el fichero web.xml de la aplicacin. La variable page.ontext tiene varias propiedades que
proporcionan acceso al objeto servlet que representa la solicitud, la respuesta, la sesin y la
aplicacin, etc.
Las cuatro ltimas variables son colecciones que contienen todos los objetos de cada mbito
especfico. Podemos usarlas para limitar la bsqueda de un objeto en slo un mbito en lugar
de buscar en todos ellos, lo que est por defecto si no se especifica ningn mbito. En otras
palabras, si hay un objeto llamado customer en el mbito de sesin, estas dos primeras
expresiones encuentran el mismo objeto, pero la tercera vuelve vaca:
UNMSM- FISI PAG. H
TALLER DE PROYECTOS I JSTL
${customer}
${session/cope.customer}
${re0uest/cope.customer}
Todas las acciones JSTL aceptan expresiones 4L como valores de atributo, para todos los
atributos excepto para ar y scope, porque estos valores de atributo podran usarse para
chequear el tipo en el momento de la traduccin en una futura versin. Hay un atributo de una
accin JSTL adicional que no toma un valor de expresin 4L, pero slo se usa en la librera
XML, por eso lo ignoraremos por ahora. Se pueden usar una o ms expresiones 4L en el
mismo valor de atributo, y el texto fijo y las expresiones 4L se pueden mezclar en el mismo
valor de atributo:
1irst name2 3lt4c2out alue5"${customer.)irst$ame}" 63gt4
3lt4c2out alue5"1irst name2 ${customer.)irst$ame}" 63gt4
Ahora veamos unos ejemplos de su uso:
Acceso a atributos de objetos Java en expresiones:
${user.firstName} = user.getFirstName()
${user.address.city} = user.getAddress().getCity()
${user.preferencesMap["shipping"]} = user.getPreferencesMap().get("shipping")
${user.preferencesList[0]} = user.getPreferencesList().get(0)
Unificando el tratamiento de los operadores: . y []
${user.firstName} es equivalente a ${user["firstName"]}
${user.preferencesMap["shipping"]} es equivalente a ${user.preferencesMap.shipping}
Con operadoradores: []
${user.preferencesMap["book.fiction"]} es equivalente a
user.getPreferencesMap().get("book.fiction")
${user.preferencesMap[product.category]} es equivalente a
user.getPreferencesMap().get(product.getCategory())
Inst"*"cin % con+i#ur"cin de* JSTL
La librera JSTL es distribuida como un conjunto de archivos JAR que simplemente tenemos
que agregarlo en el classpath del contenedor de servlets.
1. Debemos usar un contenedor de servlets compatible con la ve rsin JSP 2.0 para usar el
JSTL 1.1. El Apache Tomcat 5.0 [http://jakarta.apache.org/tomcat/] por ejemplo. En caso
contrario, es posible usar el JSTL 1.0 en un contenedor que soporte por lo menos el JSP 1.2 y
servlets 2.3.
0. Descargar la implementacin JSTL de la pgina de proyecto Jakarta TagLibs
[http://jakarta.apache.org/taglibs/binarydist.html]. La distribucin binaria viene empaquetada
como .zip o tar.gz. Desempaquete estos archivos en un directorio temporal.
5. Del directorio temporal, copie todos los archivos JAR que se encuentran en jakarta-
taglibs/standard-1.0/lib al directorio /WEB-NF/lib de su aplicacin Web. Esto incluir los JAR
especficos del JSTL as como tambin los otros JAR que depende de l.
C. Finalmente, importamos en las pginas JSP cada librera JSTL que la pgina necesitar. Eso
lo hacemos agregando las directivas taglib apropiadas al inicio de la pgina JSP. Las directivas
son:
core: <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
xml: <%@ taglib prefix="x" uri="http://java.sun.com/jstl/xml" %>
fmt: <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
sql: <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
UNMSM- FISI PAG. I
TALLER DE PROYECTOS I JSTL
Ahora, creamos una pgina JSP y probamos algunas etiquetas simples para asegurarnos que
la configuracin del JSTL est bien hecha.
CODE
1 <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
2
3 Setting the value: "Hello World!"
4 <c:set var="hello" value="Hello World!"/>
5 <p/>
6 <c:out value="${hello}"/>
Li$rer3"s en#*o$"d" en e* JSTL!T"#s&
JSTL 1.0 especifica un conjunto de libreras de etiquetas basadas en el AP JSP 1.2. Hay
cuatro libreras de etiquetas independientes, cada una contiene acciones personalizadas
dirigidas a un rea funcional especfica. Esta tabla lista cada librera con su prefijo de etiqueta
recomendado y la UR por defecto:
7escri2cin Pre+i/o
Core c
XML Processing x
18N & Formatting fmt
Database Access sql
L" Li$rer3" -ore
Contiene acciones para las tareas rutinarias, como incluir o excluir una parte de una pgina
dependiendo de una condicin en tiempo de ejecucin, hacer un bucle sobre una coleccin de
tems, manipular URLs para seguimiento de sesin, y la correcta interpretacin del recurso
objetivo, as como acciones para importar contenido de otros recursos y redireccionar la
respuesta a una URL diferente.
JSTL core
Are" Funcin T"#s Pre+i/o
UNMSM- FISI PAG. J
TALLER DE PROYECTOS I JSTL
Core
Variable de soporte
remove
set
Flow control
choose
when
otherwise
forEach
forTokens
if
URL management
import
param
redirect
param
url
param
Miscellaneous
catch
out
c
A continuacin se describe cada tags segn el tipo de funcin que desempea:
E"ri"$*e de so2orte
Kesu)en de eti,uet"s
re)o.e
Elimina una variable (desde un mbito particular, si se especifica).
A continuacin se muestra un ejemplo del remove:
?c're)o.e var="cart" scope="sessionL;@
set
Establece el resultado de una evaluacin de expresin en un 'mbito'.
EL JSP la variable o propiedad se puede establecer, ya sea el atributo de valor:
?c'set ."r=M+ooM sco2e=MsessionM ."*ue=M...M;@
O del cuerpo de la etiqueta
?c'set ."r=M+ooM@
...
?;c'set@
Por ejemplo, los siguientes conjuntos una variable llamada EL BOOKD con el
valor del parmetro de solicitud de quitar el nombre:
<c:set var="bookd" value="${param.Ke)o.e}"/>

-ontro* de +*u/o
Kesu)en de eti,uet"s
cFoose
Es una etiqueta de condiciona simple que establece un contexto mutuamente
excluyentes para las operaciones condicionales, marcado por <when> y
<otherwise >
Por ejemplo, el cdigo de ejemplo siguiente muestra cmo hacer que el texto
sobre la base de un cliente de la categora de miembros.
<c:choose>
<c:when test="${customer.category == 'trial'}" >
...
</c:when>
<c:when test="${customer.category == 'member'}" >
...
<c:otherwise>
...
</c:otherwise>
</c:choose>
UNMSM- FISI PAG. N
TALLER DE PROYECTOS I JSTL
i+
Es una etiqueta condicional simple, que evala si la condicin suministrada es
verdadera y, opcionalmente, expone una variable booleana de secuencias de
comandos que representan a la evaluacin de esta condicin.
Un ejemplo de esta etiqueta se muestra a continuacin:
?c'i+ test=MOP>e)2t% 2"r").AddQM@
<c:set var="bid" value="${param.Add}"/>
...
?;c'i+@
+or4"cF
La etiqueta bsica de iteracin, acepta muchos tipos diferentes de subconjuntos
de apoyo y otras funciones.
Ejemplo:
<c:forEach var="item" items="${sessionScope.cart.items}">
...
...
</c:forEach>
+orToGens tera ms fichas, separados por el suministrado delimitado.
otFerRise
Sub etiqueta de <choose> que sigue a la etiqueta<when> y funciona slo si
todas las condiciones previas para evaluar son falsos.
<c:otherwise>
...
</c:otherwise>
RFen
Sub etiqueta de <choose> que incluye su cuerpo si su condicin evaluada es
'verdadera.'
<c:when test="" >
...
</c:when>

UKL )"n"#e)ent
Kesu)en de eti,uet"s
i)2ort
Recupera un absoluto o relativo URL y expone su contenido, ya sea a la pgina,
una cadena en 'var', o en un lector de 'varReader .
?c'i)2ort ur*=M;$ooGs.()*M ."r=M()*M ;@
2"r")
Aade un parmetro para que contengan una "importacin" de la etiqueta URL.
<c:url var="url" value="/catalog" >
?c'2"r") n")e=MAddM ."*ue=MOP$ooGIdQM ;@
</c:url>
redirect Redirige a una nueva URL.
ur* Crea una URL con parmetros de consulta facultativa.
E"rios
Kesu)en de eti,uet"s
c"tcF
Captura cualquier Throwable que se produce en su cuerpo y, opcionalmente, se
expone.
out
Al igual que <% = ... >, Pero para las expresiones.
<c:out value="value" [escapeXml="{true|false}"]
[default="defaultValue"] />
UNMSM- FISI PAG. S
TALLER DE PROYECTOS I JSTL
L" Li$rer3" TML
Contiene acciones para procesamiento XML, incluido validar un documento XML y
transformarlo usando XSLT. Tambin proporciona acciones para extraer parte de un documento
XML validado, hacer bucles sobre un conjunto de nodos, y procesamiento condicional basado
en valores de nodos.
Are" Funcin 4ti,uet" Pre+i/o
XML
Ncleo
out
parse
set
Flujo de control
choose
when
otherwise
forEach
if
Transformacin
transform
param
x
A continuacin se describe cada etiqueta segn el tipo de funcin que desempea:
NUc*eo
Kesu)en de eti,uet"s
out Al igual que <% = ... >, Pero para las expresiones XPath.
2"rse Analiza el contenido en XML de 'fuente' atributo o 'cuerpo'
set Guarda el resultado de una expresin XPath evaluada en un 'mbito'
F*u/o de -ontro*
Kesu)en de eti,uet"s
cFoose
Es una etiqueta de condiciona simple que establece un contexto mutuamente
excluyentes para las operaciones condicionales, marcado por <when> y
<otherwise >
i+
Etiqueta XML condicional, que evalua su cuerpo, si la expresin XPath
suministrados es "verdadero" ,como un booleano.
+or4"cF Es una etiqueta de iteracin XML .
otFerRise
Sub etiqueta de <choose> que sigue a la etiqueta<when> y funciona slo si
todas las condiciones previas para evaluar son falsos.
RFen
Sub etiqueta de <choose> que incluye su cuerpo si su condicin evaluada es
'verdadera.'
La pgina JSP bookcatalog.jsp utiliza la etiqueta foreach para mostrar todos los libros figura
BookList en la forma siguiente:
Code:
<x:forEach var="book"
select="$applicationScope:booklist/books/*">
<tr>
<c:set var="bookd">
<x:out select="$book/@id"/>
UNMSM- FISI PAG. 1V
TALLER DE PROYECTOS I JSTL
</c:set>=
<td bgcolor="#ffffaa">
<c:url var="url"
value="/bookdetails" >
<c:param name="bookd" value="${bookd}" />
<c:param name="Clear" value="0" />
</c:url>
<a href="${url}">
<strong><x:out select="$book/title"/>&nbsp;
</strong></a></td>
</tr>
<tr>
<td bgcolor="#ffffff">
&nbsp;&nbsp;<fmt:message key="By"/> <em>
<x:out select="$book/firstname"/>&nbsp;
<x:out select="$book/surname"/></em></td></tr>
</x:forEach>
Tr"ns+or)"cin
Kesu)en de eti,uet"s
2"r")
Aade un parmetro para que contenga una "transformar" de la etiqueta de
transformadores
tr"ns+or)
Lleva a cabo una transformacin de un documento XML fuente y una hoja de
estilos XSLT.
L" Li$rer3" I1NN A For)"ttin# +)t
Comprende la internacionalizacin y formato de valores como de moneda y fechas.
Las grandes sites normalmente necesitan complacer a los visitantes de todo el mundo, y servir
el contenido slo en un idioma no es suficiente. Para desarrollar una site que proporcione una
eleccin de idiomas, tenemos dos opciones:
Escribir un conjunto de pginas para cada idioma.
Escribir un conjunto compartido de pginas que ponga el contenido en diferentes
idiomas desde fuentes externas.
Kesu)en de eti,uet"s
setLoc"*e
Establece la localizacin por omisin para el
especificado mbito de aplicacin. Esto anular la browserbased
local.
?+)t'setLoc"*e sco2e=MsessionM
."*ue=M+rW-AM@
$und*e Establece el contexto de localizacin, basados en
especificada en el paquete de recursos, para ser utilizado dentro de
UNMSM- FISI PAG. 11
TALLER DE PROYECTOS I JSTL
el cuerpo el contenido de esta etiqueta.
?+)t'$und*e $"sen")e=MresourcesM
2re+i(=M*"$e*.M@
?+)t')ess"#e Ge%=MuserIdM;@
?+)t'$und*e@
setDund*e
Crea y almacena en un alcance
variable, un contexto de localizacin basado en el especificado
paquete de recursos.
?+)t'setDund*e
$"sen")e=MA22*ic"tionKesourcesL
."r=MstrutsMess"#esM
sco2e=M"22*ic"tionM;@
)ess"#e
Parece un mensaje localizado en un
paquete de recursos. Esta etiqueta puede contener anidadas
<fmt:param> etiquetas para especificar formato del mensaje
la sustitucin de valores. El mensaje resultante se imprime
o almacenada en un alcance variable.
?+)t')ess"#e Ge%=Mtit*eM
$und*e=MOPstrutsKesourcesQM;@
2"r")
Supplies a parameter for message
format substitution in a containing
<fmt:message>
tag. Parameters are substituted in sequential order.
<fmt:message key="fieldRequired">
?+)t'2"r") ."*ue=MUser I7M;@
</fmt:message>
re,uest4ncodin#
Encarga a utilizar JSTL
una codificacin de caracteres (vase
http://www.iana.org/assignments/character-sets)
para decodificar parmetros de solicitud. Omitir un valor
indica a utilizar la deteccin automtica de la correcta
codificacin.
?+)t're,uest4ncodin# Ge%=MIS6-NNHS-1M;@
For)"to de Acciones
Las acciones de formato analizan los nmeros, monedas, porcentajes, fechas y horas.
Kesu)en de eti,uet"s
ti)eXone Ajusta el tiempo especificado, zonas que se aplicarn al cuerpo anidado
contenido. El siguiente ejemplo muestra que el tiempo zona por esta accin
slo ha anidado visibilidad.
<jsp:useBean id="now"
class="java.util.Date"/>
?+)t'ti)eXone
."*ue=MA)eric";LosWAn#e*esM@
Pacific Time:<fmt:formatDate
type="time" timeStyle="short"
value="${now}"/>
?;+)t'ti)eXone@
<br/>
UNMSM- FISI PAG. 10
TALLER DE PROYECTOS I JSTL
Local Time:<fmt:formatDate type="time"
timeStyle="short" value="${now}"/>
setTi)eXone
Ajusta el tiempo especificado en una zona, nombre de un alcance variable o
utilizando el intervalo de tiempo predeterminado Nombre de zona var si no se
especifica.
?+)t'setTi)eXone ."r=M)tnTi)eM
."*ue=MA)eric";7en.erM;@
Mountain Time: <fmt:formatDate
type="time" timeStyle="short"
value="${now}" timeZone="${mtnTime}"/>
+or)"tNu)$er
Formatos de un nmero, moneda, o el porcentaje en un local con tacto y
sensibilidad.
El valor es el formato impreso o almacenado en una scoped variable.
?+)t'+or)"tNu)$er t%2e="currenc%"
."*ue="5.SJJ"@
For)"to de FecF"s
Fechas y formatos son analizados utilizando el <fmt:formatDate> y <fmt:parseDate>
acciones que comparten las siguientes atributos en comn.
Kesu)en de eti,uet"s
+or)"t7"te
Formatos de fecha y/o el tiempo en un local con tacto y sensibilidad. El valor
es el formato impreso o almacenado en un alcance variable.
?+)t'+or)"t7"te ."*ue="${now}"
2"ttern=M%%-MMM-ddM;@
2"rse7"te
Analiza una cadena que representa una fecha y/o tiempo en un local con tacto
y sensibilidad. El valor es analizado impreso o almacenado en un alcance
variable.
?+)t'2"rse7"te ."r=M$d"%M
2"ttern=MMM;dd;%%M
."*ue=MVH;1V;I5M;@
?+)t'+or)"t7"te ."*ue=MOP$d"%QM
d"teSt%*e=M+u**M;@
Acceso " *" D"se de 7"tos !SQL&
La etiqueta SQL se dispone para llevar a cabo acciones bases de datos transaccionales, las
consultas y actualizaciones, tener acceso fcilmente a los resultados de una consulta.
Comprende el acceso a base de datos.
Un sujeto de controversia es la inclusin en JSTL de acciones para acceder a bases de datos.
Alguna gente ve esto como una mala prctica y argumenta que todos los accesos a bases de
datos se deberan realizar desde componentes Java puros en una aplicacin basada en MVC
UNMSM- FISI PAG. 15
TALLER DE PROYECTOS I JSTL
en lugar de desde pgina JSP.
Kesu)en de eti,uet"s
,uer%
Realiza una consulta de base de datos (por ejemplo, select). La consulta se
debera esperar para volver un conjunto de resultados. Esta accin puede
incluir cuerpo que contiene el contenido real de cadena de consulta, as como
<sql:param> y <sql:dateParam> etiquetas de parmetro de sustitucin. Si el
cuerpo contiene la consulta SQL, debe aparecer antes de cualquier
parmetro etiquetas anidadas.
?s,*',uer% ."r=MusersM@
S4L4-T Y FK6M users Z[4K4
*"stWn")e = MDurde**M
?;s,*',uer%@
<c:forEach var="user"items="${users.roRs}">
<c:out value="${users.user_name}"/><br/>
</c:forEach>
u2d"te
Realiza una base de datos de insertar, actualizar, eliminar o otra declaracin
(por ejemplo, una declaracin DDL), que no devuelve ningn resultado. Esta
accin puede incluir cuerpo que contiene el contenido real de actualizacin
de la cadena, as como etiquetas para <sql:param> parmetro de sustitucin.
Al igual que <sql:query>, el <sql:param> etiquetas debe ocurrir despus de la
declaracin de SQL si es que figura en la etiqueta.
<sql:update> cuerpo.
?s,*'u2d"te ."r=Mu2d"te-ountM@
UP7AT4 users S4T +irstWn")e=MZi**i")M Z[4K4
+irstWn")e = MDi**M
?;s,*'u2d"te@
<c:out value=MOPu2d"te-ountQ roRs u2d"ted.M;@
tr"ns"ction
Establece una base de datos de transaccin para <sql:query> y <sql:update>
etiquetas que figuran en esta etiqueta del cuerpo. Es decir, todos los SQL
acciones contenidas en el cuerpo de esta etiqueta ser tratada como una
nica transaccin atmica. La transaccin se ha comprometido slo si todas
las declaraciones xito. Si alguno de los contenidos de SQL acciones causan
una excepcin, la transaccin se deshace.
Not"' esta accin antes de restablecer el "auto de cometer"
ajuste despus de su realizacin.
?s,*'tr"ns"ction@
<sql:update sql="DELETE users WHERE
user_name='bsiggelkow'"/>
<sql:update sql="NSERT NTO users
VALUES ('billsigg','Bill','Siggy')"/>
?;s,*'tr"ns"ction@
set7"t"Source
Crea y almacena en una variable alcance una fuente de datos SQL. Esta
etiqueta no puede tener un cuerpo. O bien la fuente de datos o URL atributo
debe ser especificado.
?s,*'set7"t"Source ."r=Mtest7DM
ur*=M/d$c')%s,*';;*oc"*Fost;test\
co).)%s,*./d$c.7ri.erM;@
<sql:query var="users"
dataSource=M${test7D}M>
SELECT * FROM users
</sql:query>
2"r") Suplentes parmetros en SQL declaracin preparada marcadores de posicin
UNMSM- FISI PAG. 1C
TALLER DE PROYECTOS I JSTL
("?"). Esta accin slo se puede anidar dentro de <sql:query> o <sql:update>
etiquetas. Si la etiqueta especifica que remite el SQL en el cuerpo, cualquier
<sql:param> etiquetas debe aparecer despus de la SQL. Los parmetros
son sustituidos en orden secuencial.
<c:set var="firstName">Bill</c:set>
<sql:query var="users">
SELECT user_name, last_name
FROM users WHERE first_name = ?
?s,*'2"r") ."*ue=MOP+irstN")eQM;@
</sql:query>
d"teP"r")
Suplentes hora, fecha, hora o los parmetros en SQL declaracin preparada
marcadores de posicin. Esta accin slo se puede anidar dentro de
<sql:query> o <sql:update> etiquetas. Los parmetros son sustituidos en
orden secuencial.
<fmt:parseDate var="ww2End"
pattern="yyyy-MM-dd"
value="1945-09-02"/>
<sql:query var="postWarBabies">
SELECT user_name FROM user_profile
WHERE birth_date > ?
?s,*'d"teP"r") ."*ue=MOPRR04ndQM
t%2e=Md"teM;@
</sql:query>
Ke+erenci"s
http://www.programacion.com/java/tutorial/jstl1/2/
http://www.programacion.com/java/tutorial/jstl1/3/
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSTL8.html
http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html
UNMSM- FISI PAG. 1H

Вам также может понравиться