1. jstl标签的基本概述

JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样, 也是要放到jsp页面中的脚本代码。JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是它的核心库Core

标签库

标签库的URI

前缀

Core

http://java.sun.com/jsp/jstl/core

c

I18N (过时了)

http://java.sun.com/jsp/jstl/fmt

fmt

SQL (过时了)

http://java.sun.com/jsp/jstl/sql

sql

XML (过时了)

http://java.sun.com/jsp/jstl/xml

x

Functions (过时了)

http://java.sun.com/jsp/jstl/functions

fn

2. jstl标签的安装

导入jar包

javax.servlet.jsp.jstl.jar
standard.jar

使用taglib指令在jsp页面导入要使用的jstl标签库

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

属性:

  • prefix 标签库的前缀
  • uri 标签库的地址

在jsp书写"<c:",看到如下提示,说明安装成功:

java导入核心标签库 jstl核心标签库_标签库

3. 常用的jstl标签

jstl的核心标签内容有很多,现在目前还常用的标签只有if、foreach标签。

3.1 if标签

if标签作用

起到java代码的判断的作用

if标签属性介绍

java导入核心标签库 jstl核心标签库_java导入核心标签库_02

  • test:判断是否执行标签内的内容(true——执行标签中的内容,false,不执行)。
  • var:用来保存test属性的结果(使用var属性给他取个名字),这个结果可以保存到指定的web域中, 默认保存在pageContext域。
  • scope:指定保存数据的到哪个web域。

eg:

  1. 使用if标签控制标签是否出现
<%
    pageContext.setAttribute("num",5);
%>
<c:if test="${num >5}">
    <div>num >5</div>
</c:if>
<c:if test="${num <=5}">
    <div>num <=5</div>
</c:if>

java导入核心标签库 jstl核心标签库_jstl标签_03

  1. 将判断结果 保存到var属性中, 并指定存到的域对象
<c:if test="${1>2}" var="bool" scope="page">
</c:if>
${bool}

java导入核心标签库 jstl核心标签库_标签库_04

3.2 forEach标签

3.2.1 forEach标签作用

起到java代码的for循环作用

3.2.2 forEach标签属性介绍

java导入核心标签库 jstl核心标签库_java导入核心标签库_05

3.2.3 数字循环

var:在不循环对象的时候,保存的是控制循环的变量;
begin:设置循环的开始
end:设置循环的结束
step:设置步长

<c:forEach begin="1" end="5" step="1" var="a">
   	<div>${a}</div>
</c:forEach>

java导入核心标签库 jstl核心标签库_java导入核心标签库_06

3.2.4 列表循环

var:在循环对象的时候,保存的是被循环对象中的元素
items:指定要被循环的对象
varStatus:保存了当前循环过程中的信息(循环的开始、结束、步长、次数等)

<%
    String[] strings = {"i","love","u"};
    pageContext.setAttribute("strings",strings);
%>

<c:forEach items="${strings}" var="strItem" varStatus="vs">
    <div>${strItem}---${vs.index}--${vs.count}</div>
</c:forEach>

java导入核心标签库 jstl核心标签库_jstl标签_07