JSTL – (Java Server Page Standard Tag Library)

Contactar con el profesor

Son un conjunto de etiquetas (tags) standard que encapsulan funcionalidades de uso común para muchas aplicaciones con JSPs.Ventajas de JSTL frente a scriptlet:

  • Debido a que las etiquetas JSTL son XML, se integran uniformemente con las etiquetas HTML y serán fáciles de usar por alguien que conozca html.
  • Las etiquetas JSTL están específicamente preparadas para realizar las tareas que van a tener lugar en la lógica de la presentación.
  • EL es usado extensamente en la librería JSTL.

Desventajas:

  • Agregar mayor sobrecarga al servidor. El código Java embebido en los scriptlets es básicamente copiado en el servlet resultante. En cambio, las etiquetas JSTL, causan un poco más de código en el servlet. En la mayoría de casos esta cantidad no es mensurable pero debe ser considerado.
  • Los scriptlets son más potentes que las etiquetas JSTL. Si desea hacer todo en un script JSP pues es muy probable que insertará todo el código Java en él.

Cargar JSTL

  1. Dejamos los archivos jstl.jar y standard.jar en la carpeta lib de nuestro proyecto. Descargar librerías.
  2. Incluimos las siguientes etiquetas en la cabecera de nuestro jsp:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

La dirección http no es buscada en internet, sino en los tld (tag library descriptor) que contienen los jar. El texto concreto de esta url carece de importancia, mientras coincida con la url que posee el tld.

<c:out value="Hola Mundo JSTL!"></c:out>
<c:out value="${param.nombre}" />

Nota: Para trabajar con jstl y con custom tags no hará falta modificar el web.xml. La etiqueta taglib quedó obsoleta en los servlets 2.4.

getAttribute() vs getParameter()

getParameter() devuelve una cadena de texto:
request.getParameter("nombre"); 

${param.nombre} // normalmente no usaremos este código en la vista
setAttribute() envía un objeto:
request.setAttribute("nombreAtributo", valorAtributo); // guarda un objeto en el request. 
<%=request.getAttribute("nombreAtributo");%> // devuelve un objeto${nombreAtributo}
<c:out value="${nombreAtributo}" />"

Ejercicio saludo

El usuario debe introducir su nombre en un cuadro de texto. Dicho nombre será enviado a un Servlet que generará el mensaje “Buenas tardes [nombre]”. Dicho mensaje llegará de nuevo al jsp, dónde lo mostraremos

Utilizar scriplet, JSTL y EL para recuperar la información.

Directiva para cargar JSTL:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

Notas: El atributo default de la etiqueta <c:out/> contiene la información que se imprimirá en caso de que la variable nos venga nulo.

← EL
Uso de clases y objetos →

Aviso Legal | Política de privacidad