JSP. 11 Librería core
<%@taglib
uri="http://java.sun.com/jsp/jstl/core"
prefix="c"%>
Esta librería implementa acciones de propósito
general, como mostrar información, crear y modificar variables de
distinto ámbito y tratar excepciones. Etiquetas más comunes:
Etiqueta out
Muestra información en la página, se muestra la
expresión contenida en el atributo value.
Es equivalente a <%= variable >,
pero para expresiones.
Ejemplo:
<c:out
value="Hola
desde JSP" />
<br /><c:out value="1+2+3" />
<br /><c:out value="${1+2+3}" />
<br /><c:out value="${param.btnEtiquetas}" />
<br /><c:out value="${sessionScope.user}" />
<br /><c:out value="1+2+3" />
<br /><c:out value="${1+2+3}" />
<br /><c:out value="${param.btnEtiquetas}" />
<br /><c:out value="${sessionScope.user}" />
Etiqueta set
Guarda información en una variable y en un
determinado ámbito, su atributos son:
Atributo
|
Descripción
|
var
|
Nombre de la variable.
|
scope
|
Ámbito de la variable, admite los valores
page, session
y application
|
Para eliminar una variable podemos usar:
<c:remove
var="nombreVariable"
scope="ambitoVariable"/>
Ejemplo:
<c:set
var="hola"
value="Hola
Mundo"
/>
hola vale: <c:out value="${hola}" />
<br />
Eliminar hola<c:remove var="hola"/>
Valor de Hola: <c:out value="${hola}" />
<br />
hola vale: <c:out value="${hola}" />
<br />
Eliminar hola<c:remove var="hola"/>
Valor de Hola: <c:out value="${hola}" />
<br />
Etiqueta if
Etiqueta para condiciones simples, evalúa si una
determinada condición es cierta. La condición se indica en el
atributo test.
Ejemplo:
Etiqueta choose, when y otherwise
Etiqueta para condiciones múltiples, cada
etiqueta when evalúa la condición
definida en el atributo test. Si
ninguna de las condiciones se cumple, se procesa el cuerpo de
otherwise en caso de que aparezca.
Ejemplo:
<c:choose>
<c:when test="${hijos == 1}">
Hijo único.
</c:when>
<c:when test="${ hijos >= 2 && hijos <=3}">
Familia Normal.
</c:when>
<c:when test="${ hijos >= 4}">
Familia numerosa.
</c:when>
<c:otherwise>
Sin hijos.
</c:otherwise>
</c:choose>
<c:when test="${hijos == 1}">
Hijo único.
</c:when>
<c:when test="${ hijos >= 2 && hijos <=3}">
Familia Normal.
</c:when>
<c:when test="${ hijos >= 4}">
Familia numerosa.
</c:when>
<c:otherwise>
Sin hijos.
</c:otherwise>
</c:choose>
Etiqueta forEach y forTokens
forEach
es una etiqueta básica de iteración, consta de los
siguientes atributos:
Atributo
|
Descripción
|
items
|
Colección sobre la que iterar.
|
var
|
Nombre de la variable donde se guardará el
elemento en curso.
|
varStatus
|
Nombre de la variable donde se guardará el
estado de la iteración.
|
En cada iteración, la variable indicada en var irá tomando el valor del elemento de la iteración. A través de la variable indicada en varStatus podemos acceder a las siguientes propiedades:
Atributo
|
Descripción
|
index
|
Posición del elemento en curso (comienza con
0).
|
count
|
Número de iteraciones (comienza con 1).
|
first
|
Valor booleano que indica si es la primera
iteración.
|
last
|
Valor booleano que indica si es la última
iteración.
|
forTokens permite iterar sobre una cadena tantas veces como indique un carácter delimitador que la cadena posea. Sus atributos son:
Atributo
|
Descripción
|
items
|
Nombre de la variable donde se guardará el
fragmento en curso.
|
delims
|
Cadena con todos los caracteres que actúan
como delimitador.
|
varStatus
|
Nombre de la variable donde se guardará el
estado de la iteración.
|
Ejemplo:
forEach
header:<br
/>
<c:forEach items="${header}" var="cabecera">
${cabecera}
</c:forEach>
<br />
forEach cadenas:<br />
<%
String[] cadenas = {"uno", "dos", "tres"};
pageContext.setAttribute("cadenas", cadenas);
%><c:forEach items="${pageScope.cadenas}" var="cadena">
${cadena}</c:forEach>
<br />
forEach param:<br />
<c:forEach items="${param}" var="myParam">
Nombre: ${myParam.key}
Valor: ${myParam.value}
<br />
</c:forEach>
<br />
<h4>forTokens</h4>
<c:forTokens items="cero,uno,dos,tres,cuatro,cinco" var="token" varStatus="cont" delims=",">
<c:out value="${cont.index} - ${token}" /><br />
</c:forTokens>
<c:forEach items="${header}" var="cabecera">
${cabecera}
</c:forEach>
<br />
forEach cadenas:<br />
<%
String[] cadenas = {"uno", "dos", "tres"};
pageContext.setAttribute("cadenas", cadenas);
%><c:forEach items="${pageScope.cadenas}" var="cadena">
${cadena}</c:forEach>
<br />
forEach param:<br />
<c:forEach items="${param}" var="myParam">
Nombre: ${myParam.key}
Valor: ${myParam.value}
<br />
</c:forEach>
<br />
<h4>forTokens</h4>
<c:forTokens items="cero,uno,dos,tres,cuatro,cinco" var="token" varStatus="cont" delims=",">
<c:out value="${cont.index} - ${token}" /><br />
</c:forTokens>
El resultado sería:
forEach
header:
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@2ed4600e
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@f38e5612
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@af400a64
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@d1c47ede
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@2fd98a7d
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@30f5a8
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@bc7b26ba
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@ab27b508
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@1cfcfe83
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@40acd92d
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@f6062478
forEach cadenas:
uno dos tres
forEach param:
Nombre: btnEtiquetas Valor: Etiquetas
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@2ed4600e
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@f38e5612
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@af400a64
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@d1c47ede
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@2fd98a7d
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@30f5a8
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@bc7b26ba
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@ab27b508
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@1cfcfe83
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@40acd92d
javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry@f6062478
forEach cadenas:
uno dos tres
forEach param:
Nombre: btnEtiquetas Valor: Etiquetas
forTokens
0 -
cero
1 - uno
2 - dos
3 - tres
4 - cuatro
5 - cinco
1 - uno
2 - dos
3 - tres
4 - cuatro
5 - cinco
Etiqueta redirect
Redirige a la dirección especificada en su
atributo url,
y aborta el procesamiento de la página actual.
Ejemplo:
<c:redirect
url="login.jsp"/>
Control de errores con catch
Con
podemos capturar excepciones sin que se aborte la ejecución de la
página al producirse un error. En el atributo var
indicamos el nombre de la variable donde debe guardarse la
información de la excepción, podremos saber que se ha producido un
error comprobando que el valor de esta variable no sea nulo.
Ejemplo:
<c:set
var="parametro"
value="aaaa"
/>
<c:catch var="error">
<%=Integer.parseInt(request.getParameter("parametro"))%></c:catch>
<c:if test="${not empty error}">
Se produjo un error: ${error}
</c:if>
<c:catch var="error">
<%=Integer.parseInt(request.getParameter("parametro"))%></c:catch>
<c:if test="${not empty error}">
Se produjo un error: ${error}
</c:if>
El
resultado sería:
Se
produjo un error: java.lang.NumberFormatException: null
Comentarios
Publicar un comentario