JSTL
Uso de etiquetas
Java Server Pages Standard Tag Libray (JSTL): biblioteca de etiquetas estándar JSP, una colección de bibliotecas de etiquetas personalizadas, que se utiliza para resolver algunos problemas comunes, como iterar una asignación o colección, pruebas condicionales, procesamiento XML e incluso bases de datos y acceso a bases de datos. etc. en funcionamiento.
Nota: Todas las operaciones de etiquetas solo pueden ser objetos de dominio .
Según diferentes funciones, se divide en cinco subcategorías :
Core (核心库) 标签库的URI:http://java.sun.com/jsp/jstl/core 常用前缀:c
I18N(国际化) 标签库的URI:http://java.sun.com/jsp/jstl/fmt 常用前缀:fmt
SQL 标签库的URI:http://java.sun.com/jsp/jstl/sql 常用前缀:sql
XML 标签库的URI:http://java.sun.com/jsp/jstl/xml 常用前缀:x
Functions 标签库的URI:http://java.sun.com/jsp/jstl/functions 常用前缀:fn
Hablemos de las etiquetas importantes de uso común en la biblioteca de etiquetas JSTL, como varias etiquetas, como las colecciones iterativas.
Biblioteca de etiquetas principal :
URI principal (biblioteca central) de la biblioteca de etiquetas: http://java.sun.com/jsp/jstl/core
contiene tareas comunes de aplicaciones web, como bucles, asignación de expresiones, entrada y salida básicas, etc.
Biblioteca de etiquetas de formato :
URI de la biblioteca de etiquetas I18N (internacionalización): http://java.sun.com/jsp/jstl/fmt se
utiliza para formatear y mostrar datos, como: formatear fechas en diferentes regiones, etc.
Para usar la biblioteca de etiquetas JSTL en la página JSP, debe usar la instrucción taglib para importar la biblioteca relacionada en el siguiente formato:
<%@taglib uri="" prefix=""%>
P.ej:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
También necesito importar dos paquetes jar jstl.jar y standard.jar, porque yo uso maven, por lo que necesito agregar dos dependencias, de la siguiente manera:
<!--jstl表达式依赖-->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<!--standard标签库-->
<!-- https://mvnrepository.com/artifact/taglibs/standard -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
Etiqueta de acción condicional
Genera diferentes resultados de acuerdo con diferentes valores. Por ejemplo, en Java, si, si else y las sentencias switch se utilizan para el procesamiento, jstl también proporciona etiquetas relacionadas: si, elige, cuando, de lo contrario.
Si etiqueta
<%--
if标签
格式:
<c:if test="${条件判断表达式}" var="限域变量名(也就是存放结果的变量)" scope="把结果放在哪个域">
……
</c:if>
注意:
1. 标签操作的一般都是域对象
2. if标签没有else
--%>
<%
request.setAttribute("num",10);
%>
例:-------------------------------------------------------------------------------------------
<c:if test="${num>0}" var="result" scope="request">
数值大于0
</c:if>
从request域里取出结果变量
${result}
coose, when, y otras etiquetas
Equivalente a cambiar y mayúsculas y minúsculas en java; de lo contrario, equivale al valor predeterminado en la instrucción switch.
El formato es el siguiente:
<c:choose>
<c:when test="${num == 1}">
1
</c:when>
<c:when test="${num == 2}">
2
</c:when>
<c:when test="${num == 3}">
3
</c:when>
<c:otherwise>
其他
</c:otherwise>
</c:choose>
Etiqueta de iteración
El primer tipo: equivalente a un bucle for
<c:forEach var="i" begin="0" end="10" step="2">
${i}<br>
</c:forEach>
resultado:
El segundo tipo: equivalente a foreach loop,
equivalente a por ejemplo:
for(String str : list){
}
jstl: items: los datos a ser enlazados var: usado para aceptar los miembros actualmente atravesados
<c:forEach items="${list}" var="str">
${str}
</c:forEach>