Upload
xitofu
View
117
Download
4
Embed Size (px)
Citation preview
Luis Garcí[email protected]
JEE - Java Enterprise EditionJEE - Java Enterprise Edition
JSTL : Java Server Page Standard Tag Library
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”
JSTLJSTL
<%-- con JSP --%> <%= session.getAttribute("username").getFirstName()%>
<%-- con JSTL --%> ${sessionScope.username.firstName}
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}
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}"/>
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.
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
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
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
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
JSTL
Implementando nuestras aplicaciones con 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 :
Librerías JSTLLibrerías JSTL
•jstl.jar
•standard.jar
3. Copiar los archivos tld al directorio WEB-INF
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>
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>
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">
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>
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>
Ejemplos:
-ejercicio00.jsp-ejercicio01.jsp-ejercicio02.jsp
Propuestos:
-Listado de Alumnos-Listado de Productos
JSTLJSTL
Eso es todo por hoy