JSP之JSTL标签库

一、概述

JSP 标准标记库( Standard Tag Library , JSTL) 是一组以标准化格式实现许多通用的 Web 站点功能的定制标记。为弥补html标签的不足,规范自定义标签的使用而诞生的。

可以嵌入在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

二、核心标签库引入

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

三、核心标签库13个标签

1.流程控制标签(if|choose|when|otherwise)

(1)if 等同于 java 中的 if 语句

    <c:if test="条件">满足条件执行的JSP代码</c:if>

(2)choose when 类似于 java 中的 switch 和 case

    <c:choose>
        <c:when test="条件1">处理1</c:when>
        <c:when test="条件2">处理2</c:when>
    </c:choose>

(3) otherwise 等同于 java switch 中的 default

当choose 中的 when 没有满足条件的时候 会执行 otherwise 中的内容

    <c:choose>
        <c:otherwise>处理</c:otherwise>
    </c:choose>

2.表达式控制标签(set|out|remove|catch)

(1)set 等同于JSP中的 session的setAttribute() 方法

    <c:set var="名字" value="值"/>

    <c:set var="名字">值</c:set>

(2) out 等同于 JSP中的 <%= %>

    <c:out value="需要输出的值">
    <c:set var="test" value="这是一个测试">

    <c:out value="${test}">

(3)remove 等同于 session中的removeAttrbute()方法

    <c:remove var="名字"/>

(4)catch类似于 java 中的 try

    <c:catch var="名字">JSP代码</c:catch>
    <c:catch var="testException">
        <% int i = 5/0; %>
    </c:catch>
    <c:if test="${testException != null}">
        上面的代码有错误发生
    </c:if>

3.循环标签(forEach|forTokens)

(1)forEach 类似于Java中的 for 循环 

设置一个开始数字 begin,设置一个结束数字end,然后每次循环都会将值赋值给 var,另外还有个 setp参数里面可以设置值每次增加几个数

    <c:forEach var="名字(i)" begin="开始数字(1)" end="结束数字(5)">
        ${i}
    </c:forEach>

    <!--输出结果是1 2 3 4 5-->

名称

EL

类型

是否必须

默认值

var

N

String

items

Y

Arrays Collection Iterator Enumeration Map String []args

begin

Y

int

0

end

Y

int

集合中最后一个元素

step

Y

int

1

varStatus

N

String

其中varStatus有4个状态属性,如下:

属性名

类型

说明

index

int

当前循环的索引值

count

int

循环的次数

frist

boolean

是否为第一个位置

last

boolean

是否为第二个位置

(2) forTokens 类似于Java中的 foreach 循环

在items中放一个集合,然后 delims设置以什么分割,然后将分割后循环的值赋值给 var,如果 items中存放的是一个集合 那么可以不用写delims,这样每循环一次,就会取出集合中的一个放在 var中 

    <c:forTokens items="a,b,c,d,e" delims="," var="name">
        ${name}
    </c:forTokens>
    
    <!--输出结果 a b c d e-->

4.URL操作标签(import|url|redirect|param)

(1)import 把其他静态或动态文件包含到本JSP页面

同<jsp:include>的区别为:只能包含同一个web应用中的文件。而<c:import>可以包含其他web应用中的文件,甚至是网络上的资源。

    <!--将 百度 的源代码返回到 codeMark 变量中-->
    <c:import var="codeMark" url="http://www.baidu.com" />

名称

说明

EL

类型

必须

默认值

url

被导入资源的URL路径

Y

String

context

相同服务器下其他的web工程,必须以" " "开头

Y

String

var

以String类型存入被包含文件的内容。

N

String

Scope

var变量的JSP范围

N

String

page

charEncoding

被导入文件的编码格式

Y

String

varReader

以Reader类型存储被包含文件内容

N

String

(2)redirect 类似于service中的重定向

    <!--重定向百度页面-->
    <c:redirect url="http://www.baidu.com"/>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值