JSTL笔记

144 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

JSTL

JSTL(JSP Standard Tag Library),是一个不断完善的开放源代码的JSP标签库。

EL表达式主要是为了替换JSP中的表达式脚本,而标签库是为了替换代码脚本。这样使整个JSP页面变得更加简洁。

功能范围URI前缀
核心标签库java.sum.com/jsp/jstl/co…c
格式化java.sum.com/jsp/jstl/fm…fmt
函数java.sum.com/jsp/jstl/fu…fn
数据库(不使用)java.sum.com/jsp/jstl/sq…sql
XML(不使用)java.sum.com/jsp/jstl/xm…x
//在jsp标签库中使用taglib指令引入标签库

//CORE标签库
<%@ taglib prefix="c" uri="http://java.sum.com/jsp/jstl/core" %>

//XML标签库
<%@ taglib prefix="x" uri="http://java.sum.com/jsp/jstl/xml" %>

//FML标签库
<%@ taglib prefix="fmt" uri="http://java.sum.com/jsp/jstl/fmt" %>

//SQL标签库
<%@ taglib prefix="sql" uri="http://java.sum.com/jsp/jstl/sql" %>

//FUNCTIONS标签库
<%@ taglib prefix="fn" uri="http://java.sum.com/jsp/jstl/functions" %>

使用步骤

  1. 先导入jstl标签库的jar包
  2. 使用taglib指令引入标签库

CORE核心库使用

  1. <c:set scope="域" var="key" value="value">:往域中保存数据 格式:域对象.setAttribute(key,value); scope属性设置保存到哪个域,page为默认

  2. <c:if test="${12 != 0}"/> :if判断

    test属性表示判断的条件(使用EL表达式输出) 不支持if-else

  3. <c:choose> <c:when> <c:otherwise>标签:多路判断,跟switch...case...defalt非常接近 使用格式:

    <c:choose>
    	<c:when test="${ requestScope.height > 190}">
    		<h2>小巨人</h2>
    	</c:when>
    	<c:when test="${ requestScope.height > 180}">
    		<h2>很高</h2>
    	</c:when>
    	<c:when test="${ requestScope.height > 170}">
    		<h2>还可以</h2>
    	</c:when>
    	<c:otherwise>
    		<h2>剩下小于170的情况</h2>
    	</c:otherwise>
    </c:choose>
    

    注意:

    ​ 标签中不能使用html注释

    ​ when标签的父标签一定要是choose标签

  4. <c:forEach/>:遍历输出使用。

//遍历输出1到10
<c:forEach begin="1" end="100" var="i">
	${ i }
</c:forEach>

//遍历数组,原理和for(Object i:arr)一样
<c:forEach items="${ requestScope.arr}" var="i">
	${ i }
</c:forEach>

//遍历Map集合,entry里放的是键值对
<c:forEach items="${requestScope.map}" var="entry">
	<h1>
        ${entry.key}
        ${entry.value}
    </h1>
</c:forEach>

//遍历List集合,var中是对应的每一个对象
<c:forEach items="${requestScope.stus}" var="stu">
	${stu.id}
    ${stu.username}
</c:forEach>

//组合使用
<c:forEach begin="2" end="7" step="2" varStatus="status" item="${requestScope.stus}" var="stu">
	${stu.id}
    ${stu.username}
    ${stu.password}
    ${stu.age}
    ${stu.phone}
    ${status.last}
</c:forEach>

status各属性:

QQ截图20220626104639.jpg