20
Luis García [email protected] u.pe JEE - Java Enterprise JEE - Java Enterprise Edition Edition

JEE - JSTL v1.0

  • Upload
    xitofu

  • View
    117

  • Download
    4

Embed Size (px)

Citation preview

Page 1: JEE - JSTL v1.0

Luis Garcí[email protected]

JEE - Java Enterprise EditionJEE - Java Enterprise Edition

Page 2: JEE - JSTL v1.0

JSTL : Java Server Page Standard Tag Library

Page 3: JEE - JSTL v1.0

JSTLJSTL

¿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”

Page 4: JEE - JSTL v1.0

JSTLJSTL

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

<%-- con JSTL --%> ${sessionScope.username.firstName}

Page 5: JEE - JSTL v1.0

Expression Language (EL)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}

Page 6: JEE - JSTL v1.0

Expression Language (EL)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}"/>

Page 7: JEE - JSTL v1.0

Expression Language (EL)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.

Page 8: JEE - JSTL v1.0

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 :

Librerías JSTLLibrerías JSTL

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

Page 9: JEE - JSTL v1.0

Core TagsCore Tags

Core Tags 

Area Función Tags Prefijo

Core

Variable support remove set

c

Flow control

choose when otherwise forEach forTokens if

URL management import param redirect url

Miscellaneous catch out

Page 10: JEE - JSTL v1.0

Internationalization TagsInternationalization Tags

Internationalization Tags 

Area Función Tags Prefijo

I18n

Setting Locale setLocale requestEncoding

fmt

Messaging

bundle message param setBundle

Number and Date Formatting

formatNumber formatDate parseDate parseNumber setTimeZone timeZone

Page 11: JEE - JSTL v1.0

Function TagsFunction Tags

Funciones

Area Función Tags Prefijo

Funciones

Collection length

length

fn

String manipulation

toUpperCase, toLowerCase substring, substringAfter, substringBefore trim replace indexOf, startsWith, endsWith, contains, containsIgnoreCase split, join escapeXml

Page 12: JEE - JSTL v1.0

JSTL

Implementando nuestras aplicaciones con JSTL

Page 13: JEE - JSTL v1.0

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 :

Librerías JSTLLibrerías JSTL

•jstl.jar

•standard.jar

3. Copiar los archivos tld al directorio WEB-INF

Page 14: JEE - JSTL v1.0

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

Librerías JSTLLibrerías JSTL

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

Page 15: JEE - JSTL v1.0

5. Invocar a las etiquetas dentro del jsp :

Librerías JSTLLibrerías JSTL

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

<html> <body>

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

Page 16: JEE - JSTL v1.0

Son utilizadas para realizar operaciones condicionales, Iteraciones, visualizar expresiones, etc.

c:outMuestra el resultado de una expresión. Su funcionalidad es

equivalente a la de <%= %>. Ejemplo:

Etiquetas CoreEtiquetas Core

<c:out value="Hola mundo, que facil es JSTL"/>

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

c:setPermite definir una variable. Ejemplo:

<c:set var=“i" value="${2 + 2}"/> <%-- equivalente al anterior pero con ámbito session --%> <c:set var=“i" scope="session">

Page 17: JEE - JSTL v1.0

c:ifPermite evaluar condiciones. En el cuerpo de la etiqueta se

pueden utilizar otras etiquetas. Ejemplo:

Etiquetas CoreEtiquetas Core

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

Page 18: JEE - JSTL v1.0

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

java.util.Iterator, java.util.Enumeration.

Etiquetas CoreEtiquetas Core

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

Page 19: JEE - JSTL v1.0

Ejemplos:

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

Propuestos:

-Listado de Alumnos-Listado de Productos

JSTLJSTL

Page 20: JEE - JSTL v1.0

Eso es todo por hoy