EnlacesJava en españolJava en inglésOtras áreas |
Introducción a JSTLArtículo original: http://java.about.com/library/weekly/aa_jstl_intro.htm ¿Qué es JSTL? (JSP Standard Tag Library)La librería JSTL es un componente dentro de la especificación del Java 2 Enterprise Edition (J2EE) y es controlada por Sun MicroSystems. JSTL no es más que un conjunto de librerías de etiquetas simples y estándares que encapsulan la funcionalidad principal que es usada comúnmente para escribir páginas JSP. Las etiquetas JSTL están organizadas en 4 librerías:
¿Cuál es el problema con los scriptlets JSP?Nota: Un scriptlet JSP: <% int contador = 100; %> La especificación JSP ahora se ha convertido en una tecnología estándar para la creación de sitios Web dinámicos en Java, y el problema es que han aparecido algunas debilidades:
¿Como mejoran esta situación la librería JSTL?
¿Cuales son las desventajas de los JSTL?
Ejemplo: JSTL sin scriptletsPara demostrar el concepto de ordenamiento y mejor mantenimiento de los JSP, veamos 2 versiones de una página simple. La primera versión usa etiquetas scriptlets, y la segunda usa etiquetas JSTL. Ambas páginas implementan la misma lógica. Graban una lista de objetos AddressVO del Request y luego iteran a través de la lista, imprimiendo el atributo apellido de cada objeto (si el apellido no es null y de longitud diferente a 0). En cualquier otro caso, imprimirá "N/A". Finalmente, la página imprime la fecha actual. Con scriptlets JSP:
1 <%@ page import="com.ktaylor.model.AddressVO, java.util.*"%>
2
3 <p><h1>Customer Names</h1></p>
4 <%
5 List addresses = (List)request.getAttribute("addresses");
6 Iterator addressIter = addresses.iterator();
7 while(addressIter.hasNext()) {
8 AddressVO address = (AddressVO)addressIter.next();
9 if((null != address) &&
10 (null != address.getLastName()) &&
11 (address.getLastName().length() > 0)) {
12 %>
13 <%=address.getLastName()%><br/>
14 <%
15 }
16 else {
17 %>
18 N/A<br/>
19 <%
20 }
21 }
22 %>
23 <p><h5>Last Updated on: <%=new Date()%></h5></p>
Con JSTL:
1 <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
2
3 <p><h1>Customer Names</h1></p>
4
5 <c:forEach items="${addresses}" var="address">
6 <c:choose>
7 <c:when test="${not empty address.lastName}" >
8 <c:out value="${address.lastName}"/><br/>
9 </c:when>
10 <c:otherwise>
11 N/A<br/>
12 </c:otherwise>
13 </c:choose><br/>
14 </c:forEach><br/>
15
16 <jsp:useBean id="now" class="java.util.Date" />
17
18 <p><h5>Last Updated on: <c:out value="${now}"/></h5></p>
Instalación y configuración del JSTLLa librería 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 versión 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. 2. Descargar la implementación JSTL de la página de proyecto Jakarta TagLibs [http://jakarta.apache.org/taglibs/binarydist.html]. La distribución binaria viene empaquetada como .zip o tar.gz. Desempaquete estos archivos en un directorio temporal. 3. Del directorio temporal, copie todos los archivos JAR que se encuentran en jakarta-taglibs/standard-1.0/lib al directorio /WEB-INF/lib de su aplicación Web. Esto incluirá los JAR específicos del JSTL así como también los otros JAR que depende de él. 4. Finalmente, importamos en las páginas JSP cada librería JSTL que la página necesitará. Eso lo hacemos agregando las directivas taglib apropiadas al inicio de la página JSP. Las directivas son:
core: <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> Ahora, creamos una página JSP y probamos algunas etiquetas simples para asegurarnos que la configuración del JSTL está bien hecha.
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}"/>
Cuando accedemos a esta página desde el navegador Web, si la configuración es correcta, deberíamos ver: Setting the value: "Hello World!" Hello World! ¿Qué está sucediendo en la página JSP?En la línea 1 la página helloword.jsp usa la directiva taglib para importar la librería núcleo de la etiqueta y asigna la letra "c" como prefijo. La letra "c" es usada para referenciar a las etiquetas núcleo en la página JSP. Las únicas 2 etiquetas que usamos en el ejemplo son c:set y c:out. En la línea 4 c:set lo usamos para asignar el valor "Hello World" a la variable hello. En la línea 6 c:out es usado para evaluar la variable hello con la expresión EL ${$hello}. ConclusiónEspero que esta introducción a la librería JSTL haya ilustrado lo simple que es y nos permitirán reemplazar limpiamente a los scriptlets JSP. Usando las etiquetas JSTL, podemos reusar más nuestro código en las páginas JSP, podemos tener JSP más ordenados y legibles, y, lo mejor de todo, podemos tener a los diseñadores y a los proveedores de los contenidos trabajando en el mantenimiento de las páginas JSP. |
© 2006 - Todos los derechos reservados Ciberaula -c/ Villalobos, 135 - 28018 Madrid - España - Tel. (34) 91 3035800
Aviso legal
Lo más buscado y visitado en Ciberaula
Masters:
Programación Web |
Diseño Web |
Diseño Gráfico |
Java |
Flash MX |
PHP |
3D Studio Max
Cursos:
GNU/Linux |
OpenOffice Impress |
OpenOffice Writer |
PHP 5 |
HTML |
J2EE |
J2SE |
Dreamweaver |
Flash MX |
ActionScript MX |
Photoshop Diseño Web |
Photoshop Diseño Gráfico |
Adobe Premiere |
Freehand MX |
3d Studio Max |
3d Studio Iluminación |
3d Studio Modelado |
Word |
Excel |
Access
Secciones:
Formación a Distancia |
Formación a Empresas |
Servicios a Empresas |
Cursos a Distancia |
Cursos On-Line |
E-learning |
Ofimática