JSTL标签库

JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

安装

1、下载相对应的jar包:standard.jar和jstl.jar文件拷贝到/WEB-INF/lib/下
2、使用对应的标签库时,需要在JSP文件头部包含标签

核心标签

核心标签是最常用的JSTL标签。引用核心标签库的语法如下:

<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core“ %>

out标签

用于在jsp中显示数据,就像<%= %>一样使用,当然out标签可以直接通过”.”操作符来访问属性。
参数介绍:
out参数介绍

<c:out value="${'<tag> , &'}"/>
<c:out value="${customer.address.street }"

set标签

用于保存数据,它会计算表达式的值,然后使用计算结果来设置 JavaBean 对象或 java.util.Map 对象的值。
参数介绍:
set参数

<c:set var="salary" scope="session" value="${2000*2 }"/>
<c:out value="${salary }"/>

remove标签

用于移除一个变量,可以指定这个变量的作用域,若未指定,则默认为变量第一次出现的作用域。
参数介绍:
remove参数

<c:set var="salary" scope="session" value="${2000*2}"/>
<p><c:out value="${salary}"/></p>
<c:remove var="salary"/>
<p><c:out value="${salary}"/></p>

catch标签

用来处理产生错误的异常状况,并且将错误信息储存起来
参数介绍:
catch参数

<c:catch var ="catchException">
   <% int x = 5/0;%>
</c:catch>
<c:if test = "${catchException != null}">
   <p>The exception is : ${catchException} <br />
   There is an exception: ${catchException.message}</p>
</c:if>

if标签

与我们在一般程序中用的if一样,如果表达式的值为真则执行其主体内容。
参数介绍:

<c:set var="salary" scope="session" value="${2000*2}"/>
<c:if test="${salary > 2000}">
   <p>My salary is: <c:out value="${salary}"/><p>
</c:if>

choose标签

本身只当做的父标签

标签是的子标签,用来判断条件是否成立

标签是的子标签,接在标签后,当标签判断为false时被执行

c:when参数介绍:

<c:set var="salary" scope="session" value="${2000*2}"/>
<p>Your salary is : <c:out value="${salary}"/></p>
<c:choose>
    <c:when test="${salary <= 0}">
       Salary is very low to survive.
    </c:when>
    <c:when test="${salary > 1000}">
        Salary is very good.
    </c:when>
    <c:otherwise>
        No comment sir...
    </c:otherwise>
</c:choose>

import标签

提供了所有行为标签所具有的功能,同时也允许包含绝对URL。
检索一个绝对或相对 URL,然后将其内容暴露给页面
参数介绍:

<c:import var="data" url="http://www.w3cschool.cc"/>
<c:out value="${data}"/>

forEach标签

基础迭代标签,接受多种集合类型
参数介绍:

<c:forEach var="i" begin="1" end="20" step="2" varStatus="mystatus">
   Item <c:out value="${i}"/>-${mystatus.index }<p>
</c:forEach>

<c:forEach var="s" items="${requestScope.arr }" varStatus="mystatus">
    ${mystatus.index } : ${s }<br>
</c:forEach>

forTokens标签

根据指定的分隔符来分隔内容并迭代输出
参数介绍:
参数类似forEach标签,但是比forEach标签多一个参数
delims 分隔符

<c:forTokens items="Zara,nuha,roshy" delims="," var="name">
   <c:out value="${name}"/><p>
</c:forTokens>

redirect标签

重定向至一个新的URL

<c:redirect url="http://kuku940.github.io"/>

url标签

使用可选的查询参数来创造一个URL
一般会和标签一起使用,而param标签则是用来给包含或重定向的页面传递参数
参数介绍:
url参数

param参数

<c:url value="/index.jsp" var="myURL">
   <c:param name="trackingId" value="1234"/>
   <c:param name="reportType" value="summary"/>
</c:url>
<c:import url="${myURL}"/>

当然还有一些字符串处理fn函数和格式化fmt标签,以及xml标签和sql标签