前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JSTL标签库

JSTL标签库

原创
作者头像
会洗碗的CV工程师
发布2024-06-26 23:24:52
1360
发布2024-06-26 23:24:52
举报
文章被收录于专栏:JSP

JSTL标签库

什么是JSTL标签库

JSTL(Java server pages standard tag library,即JSP标准标签库)JSTL标签是基于JSP页面的。这些标签可以插入在JSP代码中,本质上JSTL也是提前定义好的一组标签,这些标签封装了不同的功能,在页面上调用标签时,就等于调用了封装起来的功能。JSTL的目标是使JSP页面的可读性更强、简化JSP页面的设计、实现了代码复用、提高效率。

在JSP2.0版本后开始支持JSTL标签库。在使用JSTL标签库时需要在JSP中添加对应的taglib指令标签。

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

JSTL标签分类

根据JSTL标签所提供的功能,可以将其分为5个类别。

核心标签

最常用、最重要,也是最基本的标签

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

格式化标签

JSTL格式化标签用来格式化并输出文本、日期、时间、数字。

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

SQL标签

JSTL SQL标签库提供了与关系型数据库(Oracle,MySQL,SQL Server等等)进行交互的标签。

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

XML标签

JSTL XML标签库提供了创建和操作XML文档的标签。

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

JSTL函数

JSTL包含一系列标准函数,大部分是通用的字符串处理函数。

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

EL表达式

什么是EL表达式

EL(Expression Language)是一种表达式语言。是为了使JSP写起来更加简单,减少java代码,可以使得获取存储在Java对象中的数据变得非常简单。在JSP2.0版本后开始支持EL表达式。

语法结构

${表达式}

${对象.属性名}

EL表达式中的操作符

操作符

描述

( )

优先级

+

-

减或负

*

/ 或div

% 或 mod

取模

== 或 eq

测试是否相等

!= 或 ne

测试是否不等

< 或 lt

测试是否小于

> 或gt

测试是否大于

<= or le

测试是否小于等于

>= 或 ge

测试是否大于等于

&& 或 and

测试逻辑与

|| 或 or

测试逻辑或

! 或not

测试取反

empty

测试是否空值

EL表达式的隐含对象

隐含对象

描述

pageScope

page 作用域

requestScope

request 作用域

sessionScope

session 作用域

applicationScope

application 作用域

param

Request 对象的参数,字符串

paramValues

Request对象的参数,字符串集合

header

HTTP 信息头,字符串

headerValues

HTTP 信息头,字符串集合

initParam

上下文初始化参数

cookie

Cookie值

pageContext

当前页面的pageContext

使用EL表达式取出作用域中的值

${pageScope.name}

${requestScope.name}

${sessionScope.name}

${applicationScope.name}

获取作用域属性中的数据时,也可以只写属性名,EL表达式会按照pageScope、requestScope、sessionScope、applicationScope的顺序查找该属性的值。

${name}

JSTL标签库与EL表达式的使用

JSTL标签库的使用步骤

添加jstl.jar

在JSP页面中添加taglib指令标签。

JSTL核心标签的使用(jstldemo)

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

< c:if >(jstldemo)

标签判断表达式的值,如果表达式的值为 true 则执行其主体内容。

必须有属性test,test就是布尔表达式的内容

< c:choose >, < c:when >, < c:otherwise >(jstldemo)

< c:choose >标签与Java switch语句的功能一样,用于在众多选项中做出选择。

switch语句中有case,而< c:choose >标签中对应有< c:when >,switch语句中有default,而< c:choose >标签中有< c:otherwise >。

如果有多个满足的<c:when>标签,则只会返回第一个满足的<c:when>的内容

< c:forEach >(jstldemo)

迭代器,用于迭代集合。

属性

描述

items

被迭代的集合

begin

迭代器的起始因子

end

迭代器的结束因子

step

迭代因子的增长数

var

代表当前迭代元素的变量名称

varStatus

代表循环状态的变量名称

varStatus 属性 varStatus.count 迭代器的计数器

current: 当前这次迭代的(集合中的)项

index: 当前这次迭代从 0 开始的迭代索引

count: 当前这次迭代从 1 开始的迭代计数

first: 用来表明当前这轮迭代是否为第一次迭代的标志

last: 用来表明当前这轮迭代是否为最后一次迭代的标志

begin: 属性值

end: 属性值,当end等于begin时还会执行。

step: 属性值

使用ForEach迭代List (User)(FindUsersServlet)(showUsers)

需求:

创建Users对象,含有userid,username属性。

创建一个Servlet,在Servlet中创建多个Users对象并放到List集合中,在showUsers.jsp的页面中显示所有的Users对象的信息。

items属性就是要循环迭代的集合,var就是每一次迭代的因子

使用ForEach迭代Map(FindUsersServlet2)(showUsers2)

需求:

创建Users对象,含有userid,username属性。

创建一个Servlet,在Servlet中创建多个Users对象并放到Map集合中,在showUsers2.jsp的页面中显示所有的Users对象的信息。

返回获取key:u.key

返回获取value:u.value

HashMap不能保证集合里面元素的顺序

JSTL格式化标签的使用(FormatServlet)(format)

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

对日期的格式化处理

<fmt:formatDate value="${data}" pattern="yyyy-MM-dd"/>

对数字格的式化处理(保留两位小数,加上千位符,首位加上货币符号)

<fmt:formatNumber value="${balance}" type="currency"/>

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JSTL标签库
    • 什么是JSTL标签库
      • JSTL标签分类
      • EL表达式
        • 什么是EL表达式
          • EL(Expression Language)是一种表达式语言。是为了使JSP写起来更加简单,减少java代码,可以使得获取存储在Java对象中的数据变得非常简单。在JSP2.0版本后开始支持EL表达式。
            • 语法结构
              • EL表达式中的操作符
                • EL表达式的隐含对象
                  • 使用EL表达式取出作用域中的值
                  • JSTL标签库与EL表达式的使用
                    • JSTL标签库的使用步骤
                      • JSTL核心标签的使用(jstldemo)
                        • 使用ForEach迭代List (User)(FindUsersServlet)(showUsers)
                          • 使用ForEach迭代Map(FindUsersServlet2)(showUsers2)
                            • JSTL格式化标签的使用(FormatServlet)(format)
                            相关产品与服务
                            关系型数据库
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档