Sie sind auf Seite 1von 20

JEE - Java Enterprise Edition

Luis García
plgarcia@cibertec.edu.pe
JSTL : Java Server Page
Standard Tag Library
JSTL

¿Qué es JSTL?

Un conjunto de etiquetas (tags) standard que encapsulan


funcionalidades de uso común para muchas aplicaciones con
JSPs.

JSTL soporta tareas de uso común, tales como:


Manejo de Iteraciones
Soporte de expresiones Condicionales
Soporte para Formatos de fechas y números
Etiquetas para soporte de Internacionalización, etc.

“JSTL evita el uso de scriptlets dentro de un JSP”


JSTL

<%-- con JSP --%>


<%=
session.getAttribute("username").getFirstName()%
>

<%-- con JSTL --%>


${sessionScope.username.firstName}
Expression Language (EL)

Antes de JSTL, JSP usaba Java para referenciar atributos


dinámicos. Con JSTL ya no es necesario.

EL es un lenguaje cuyo único propósito es referenciar objetos y


sus propiedades.

Todas las expresiones EL están encerradas por ${ }

<%-- con JSP --%>


<%= request.getParameter("login") %>

<%-- con JSTL --%>


${param.login}
Expression Language (EL)

Podemos usar expresiones en cualquier parte del


documento, como valores de los atributos de etiquetas
JSTL

<c:out value="${2+2}"/>

<c:out value="${nombre}"/>

<c:if test="${tabla.indice % 2 == 0}">es par</c:if>

O independientemente junto a texto estático HTML

<input type="text" name="usuario" value="${requestScope.usuario.nombre}"/>


Expression Language (EL)

Objetos implícitos EL

Objeto implícito Descripción

pageScope Variables de ámbito página.


requestScope Variables de ámbito request.
sessionScope Variables de ámbito session.
applicationScope Variables de ámbito application.

param Parametros del request como


cadenas.
paramValues Parametros del request como
array de cadenas.
initParam Parametros de inicialización
de la aplicación Web.
Librerías JSTL

Implementación :

JSTL incluye una gran variedad de etiquetas (tags) para


resolver problemas en diversas áreas funcionales.

Las áreas han sido representadas en librerías, siendo éstas


las siguientes :

Nombre <taglib-uri>

•Core: http://java.sun.com/jsp/jstl/core
•XML: http://java.sun.com/jsp/jstl/xml
•Internationalization: http://java.sun.com/jsp/jstl/fmt
•SQL: http://java.sun.com/jsp/jstl/sql
•Functions: http://java.sun.com/jsp/jstl/functions
Core Tags

Core Tags 

Area Función Tags Prefijo

remove
Variable support
set

choose
when
Flow control
otherwise
forEach
forTokens
Core if c

import
URL management
param
redirect
url

Miscellaneous
catch
out
Internationalization Tags

Internationalization Tags 

Area Función Tags Prefijo

setLocale
Setting Locale
requestEncoding

bundle
message
Messaging
param
I18n setBundle fmt

formatNumber
formatDate
parseDate
Number and Date Formatting
parseNumber
setTimeZone
timeZone
Function Tags

Funciones

Area Función Tags Prefijo

Collection
length
length

toUpperCase, toLowerCase
substring, substringAfter,
Funciones substringBefore fn
trim
String
replace
manipulation
indexOf, startsWith, endsWith, contains,
containsIgnoreCase
split, join
escapeXml
JSTL

Implementando nuestras
aplicaciones con JSTL
Librerías JSTL

1. Descargar el archivo de fuentes binarias


correspondientes a JSTL de la página de Jakarta en el
siguiente link : http://apache.towardex.com/jakarta/taglibs/
standard/.
y descomprimirlo.

2. Copiar los archivos jar en la carpeta common/lib del


TomCat :
•jstl.jar

•standard.jar

3. Copiar los archivos tld al directorio WEB-INF


Librerías JSTL

4. Editar el archivo web.xml y registrar los TLDs.


<taglib>
    <taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
    <taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>

  <taglib>
    <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
  </taglib> 
 <taglib>
    <taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
    <taglib-location>/WEB-INF/sql.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
    <taglib-location>/WEB-INF/x.tld</taglib-location>
  </taglib>
Librerías JSTL

5. Invocar a las etiquetas dentro del jsp :

<%@ taglib prefix="c"


uri="http://java.sun.com/jstl/core" %>

<html>
<body>
<c:out value="Hola mundo"/>
</body>
</html>
Etiquetas Core

Son utilizadas para realizar operaciones condicionales,


Iteraciones, visualizar expresiones, etc.

c:out
Muestra el resultado de una expresión. Su funcionalidad es
equivalente a la de <%= %>. Ejemplo:
<c:out value="Hola mundo, que facil es JSTL"/>

<c:out value="${noexisto}" default=“error en la expresion"/>

c:set
Permite definir una variable. Ejemplo:
<c:set var=“i" value="${2 + 2}"/>
<%-- equivalente al anterior pero con ámbito session --%>
<c:set var=“i" scope="session">
Etiquetas Core

c:if
Permite evaluar condiciones. En el cuerpo de la etiqueta se
pueden utilizar otras etiquetas. Ejemplo:
<c:if test=“${i!=null}” >
<c:out value=“La variable es ${i}"/>
</c:if>

<c:set var=“i” value=“${null}” />


<c:if test=“${i==null}” ><c:out value=“La variable es nula"/></c:if>

c:choose, c:when, c:otherwise


No tiene atributos, acepta como hijos uno o más <c:when>.
<c:choose>
<c:when test="${hour>=7 && hour<=12}"> morning </c:when>
<c:when test="${hour>12 && hour<=17}"> afternoon </c:when>
<c:when test="${hour>17 && hour<22}"> evening </c:when>
<c:otherwise>night</c:otherwise>
</c:choose>
Etiquetas Core

c:forEach
Permite iterar elementos tales como:
• Arrays de objetos o tipos primitivos.
• Instancias de java.util.Collection, java.util.Map,
java.util.Iterator, java.util.Enumeration.

<c:forEach items="${elvector}" var=“elbean">


<c:out value="${elbean.nombre}"/>
</c:forEach >

<c:forEach begin="1" end="24" step="1" var="hour" varStatus="status">


<c:out value="${hour}"/>
<c:if test="${status.count == 19}">
No me saco menos de esta nota!!!
</c:if>
<br/>
</c:forEach>
JSTL

Ejemplos:

-ejercicio00.jsp
-ejercicio01.jsp
-ejercicio02.jsp

Propuestos:

-Listado de Alumnos
-Listado de Productos
Eso es todo por hoy 

Das könnte Ihnen auch gefallen