JSTL 标签库

it2025-10-02  6

JSTL标签库

JSTL 标签库的使用步骤core 核心库使用标签1.遍历1到10并输出2.遍历 Object 数组3.遍历Map集合

JSTL 标签库全称是 JSP Standard Tag Library。JSP 标准标签库是一个不断完善的开放源代码的 JSP 标签库。 EL 表达式主要是为了替换 jsp 中的表达式脚本,二标签库则是为了替换代码脚本。这样使得整个 jsp 页面变得更加简洁。

JSTL 由五个不同功能的标签库组成。

在 jsp 标签库中使用 taglib 指令引入标签库 CORE 标签库: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> XML 标签库: <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %> FMT 标签库: <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> SQL 标签库: <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> FUNCTIONS 标签库: <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

JSTL 标签库的使用步骤

先导入 jstl 标签库的 jar 包。 taglibs-standard-impl-1.2.1.jar taglibs-standard-spec-1.2.1.jar第二步,使用 taglib 指令引入标签库。

core 核心库使用

<c:set />

set 标签可以往域中保存数据。

set.jsp 文件代码示例:

<body> <%-- set 标签可以往域中保存数据 域对象.setAttribute(key,value); scope 属性设置保存到哪个域 page 表示 PageContext 域(默认值) rquest 表示 Request 域 session 表示 Session 域 application 表示 ServletContext 域 var 属性设置 key 是多少 value 属性设置值 --%> 保存之前: ${ sessionScope.abc} <br> <c:set scope="session" var="abc" value="abcValue"/> 保存之后: ${ sessionScope.abc} <br> </body>

<c:if />

if 标签用来做 if 判断。 代码示例:

<%-- <c:if /> if 标签用来做 if 判断 test 属性用来表示判断的条件(使用EL表达式输出) --%> <c:if test="${ 12 = 12 }"> <h1>12等于12</h1> </c:if> <c:if test="${ 12 != 12 }"> <h1>12等于12</h1> </c:if>

<c:choose><c:when><c:otherwise>标签

作用:多路判断,类似于 switch-case-default。

jsp代码示例:

<body> <%-- <c:choose><c:when><c:otherwise>标签 作用:多路判断。 choose 标签开始选择判断 when 标签表示每一种判断情况 test 属性表示当前这种判断情况的值 otherwise 标签表示剩下的情况 <c:choose><c:when><c:otherwise>标签使用时需要注意的点: 1.标签里不能使用html注释,要使用jsp注释 2.when标签的父标签一定是choose标签 --%> <% request.setAttribute("height",800); %> <c:choose> <%--jsp注释--%> <c:when test="${ requestScope.height > 190}"> <h2>你很高哦</h2> </c:when> <c:when test="${ requestScope > 180 }"> <h2>你有点高</h2> </c:when> <c:when test="${ requestScope > 170 }"> <h2>还不错哦</h2> </c:when> <c:otherwise> <c:choose> <c:when test="${requestScope.height > 160}"> <h3>大于 160</h3> </c:when> <c:when test="${requestScope.height > 150}"> <h3>大于 150</h3> </c:when> <c:when test="${requestScope.height > 140}"> <h3>大于 140</h3> </c:when> <c:otherwise> 其他小于 140 </c:otherwise> </c:choose> </c:otherwise> </c:choose> </body>

<c:forEach />

作用:遍历输出使用。

1.遍历1到10并输出

代码示例:

<body> <%-- 1.遍历110并输出 begin 属性设置开始的索引 end 属性设置结束的索引 var 属性表示循环的变量(也是当前正在遍历到的数据) for (int i = 1; i < 10; i++) --%> <table border="1"> <c:forEach begin="1" end="10" var="i"> <tr> <td>第${i}</td> </tr> </c:forEach> </table> </body>

2.遍历 Object 数组

代码示例:

<%-- 2.遍历Object数组 for(Object item:arr) item 表示遍历的数据源(遍历的集合) var 表示当前遍历到的数据 --%> <% request.setAttribute("arr", new String[]{"18610541354","18688886666","18699998888"}); %> <c:forEach items="${ requestScope.arr }" var="item"> ${ item } <br> </c:forEach>

3.遍历Map集合

示例代码:

<% Map<String,Object> map = new HashMap<String, Object>(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); %> <c:forEach items="${ requestScope.map }" var="entry"> <h1>${entry.key} = ${entry.value}</h1> </c:forEach>
最新回复(0)