Resumen de JSTL 1.2
Un sucinto resumen a modo de chuleta de JSTL 1.2
Taglibs disponibles con la libreria:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
I18N, configuración del bundle por defecto:
<web-app>
...
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>com.acme.MyResources</param-value>
</context-param>
...
</web-app>
Tags (usos habituales):
<c:out value=”value” [escapeXml=”{true|false}”]
[default=”defaultValue”] />
<c:set value=”value” var=”varName”
[scope=”{page|request|session|application}”]/>
<c:remove var=”varName” [scope=”{page|request|session|application}”]/>
<c:redirect url="http://acme.com/register"/>
<c:import url=”url” [context=”context”]
[var=”varName”] [scope=”{page|request|session|application}”]
[charEncoding=”charEncoding”]>
<c:url value=”value” [context=”context”]
[var=”varName”] [scope=”{page|request|session|application}”]/>
<c:if test=”cond” [var=”varName”]
[scope=”{page|request|session|application}”]>
body content
</c:if>
<fmt:message key="greeting"/>
<fmt:setLocale value=”en_US” />
<fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/>
<fmt:formatDate value=”${now}” pattern="dd.MM.yy"/>
En el caso del <c:forEach> podemos iterar sobre:
- java.util.Collection (incluye List y Set)
- java.util.Map
- Arrays
- java.util.Iterator
- java.util.Enumeration
La sintaxis:
<c:forEach [var=”varName”] items=”collection”
[varStatus=”varStatusName”]
[begin=”begin”] [end=”end”] [step=”step”]>
Y su tag compañero <c:forTokens> que permite iterar sobre un String, utilizando StringTokenizer con los delimitadores indicados.
La sintaxis:
<c:forTokens items="stringOfTokens" delims="delimiters"
[var="varName"]
[varStatus="varStatusName"]
[begin="begin"] [end="end"] [step="step"]>
Finalmente un listado de las funciones incorporadas en JSTL.
- length: longitud de cualquier cosa que podamos usar en un <c:forEach>
- toLowerCase, toUpperCase
- substring, substringAfter, substringBefore
- trim
- replace
- indexOf, startsWith, endsWith, contains, containsIgnoreCase
- split, join
- escapeXml