EL表达式和JSTL

文章目录

EL表达式

(1)什么Expression Language 表达式语⾔
最初定义于JSTL1.0部分
在JSP2.0中,EL从JSTL中剥离出来,放置在JSP规范中,称为JSP2.0规范的⼀部分
在JSP中使⽤EL表达式,可以简化对象和变量的访问是EL表达式

(2)EL表达式语法

语法格式:${需要展示信息的名字}
注意:
当表达式没有指定变量或者对象的范围时,
那么容器会依次从pageContext—>request—>session—>application中查找该变量或对象,我们可以
通过隐含对象获得指定作⽤域的值:

pageScope对象,⽤于获取当前⻚⾯的属性值
requestScope对象,⽤于获取请求范围的属性值
sessionScope对象,⽤于获取会话范围的属性值
applicationScope对象,⽤于获取程序范围的属性值

语法:
${requestScope.key}

(3)EL中基础操作符
在这里插入图片描述

示例:

单个变量:${a+10}<br>
单个变量:${s}<br>
单个对象:${key.属性名}
 //对象类型
 Users u=new Users();
 u.setName("王⽼五");
 u.setPass("abc");
 pageContext.setAttribute("u1",u);
 user.name=${u1.name}
 user.pass=${u1.pass}
 // list集合对象: 
 List list=new ArrayList();
 list.add("刘能");
 list.add(30);
 list.add(u);
 pageContext.setAttribute("list2",list);
 list1=${list2[0]}<br/>
 list2=${list2[1]}<br/>
 list3=${list2[2].pass}<br/>
// map集合: 
 k1=${map1.k1}<br>
 k2=${map1.k2.username}--- ${map1.k2.password}
判断变量是否有值或是否存在:${empty key值}
 List list2=new ArrayList();
 list2.add("aa");
 request.setAttribute("list222",list2);
判断list中是否有数据:${empty list222}

JSTL

(1) 什么是JSTL

JSP标准标签库(JSTL)是⼀个JSP标签集合,它封装了JSP应⽤的通⽤核⼼功能。

JSTL⽀持通⽤的、结构化的任务,⽐如迭代,条件判断,XML⽂档操作,国际化标签,SQL标签。 除了这些,它还提供了⼀个框架来使⽤集成JSTL的⾃定义标签。

根据JSTL标签所提供的功能,可以将其分为5个类别。核⼼标签 格式化标签 sql标签 xml标签 jstl函数

(2) JSTL的作⽤和语法格式

作⽤:简化jsp⻚⾯编写代码

语法格式:

1.maven导入jar包

    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.1.2</version>
    </dependency>
  1. 在JSP⻚⾯中引⼊<%@ taglib prefix=”⻚⾯使⽤的名称” uri=”功能范围的路径”%>

在这里插入图片描述
(3) 核⼼标签

①核⼼标签是最常⽤的 JSTL标签。引⽤核⼼标签库的语法如下:

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

② 核⼼标签的分类

表达式操作 out、set、remove、catch

流程控制 if、choose、when、otherwise

迭代操作 forEach、forTokens

URL操作 import、param、url、redirect

Set标签

<c:set> 主要⽤来将变量存储⾄JSP范围中 或是JavaBean的属性或Map对象中

在这里插入图片描述
<c:out>主要⽤来显示数据的内容
在这里插入图片描述
<c:remove> 主要负责移除变量
在这里插入图片描述
<c:if> 主要⽤于进⾏if判断,如果为true,则输出标签体中的内容

在这里插入图片描述
<c:choose>,<c:when>,<c:otherwise> 作⽤相当于if-else
在这里插入图片描述
<c:forEach> 循环控制,它可以将数组,集合(Collection)中的成员循序浏览⼀遍。
在这里插入图片描述
(4)格式化标签

1、fmt:formatDate 作⽤:将⽇期类型格式化为指定模式的字符串
属性

value:将要被格式化的数据

pattern:格式化的模式,与SimpleDateFormat的参数设置⼀样

var:格式化后的字符串所要存放的变量,若不指定var,则会将格式化的结果直接显示在⻚⾯

scope:变量存放的域属性空间,默认page

type:其取值为date、time、both,表示给出的value是⽇期、时间、还是两者都包含,默认是date

2、fmt:parseDate 作⽤:⽤于将指定字符串转化为⽇期类型

<fmt:parseDate value="${now }" pattern=“yyyy-MM-dd” var=“today”/>

Value服务器获取的时间

Pattern:转换的格式

Var:⻚⾯显示的变量

3、fmt:formatNumber 按照指定格式对数字进⾏格式化
属性

maxIntegerDigits:整数部分最多的位数

minIntegerDigits:整数部分最少的位数

maxFrctionDigits:⼩数部分最多的位数

minFrctionDigits:⼩数部分最少的位数

var:存储格式化结果的变量

scope:var属性的作⽤域

integerOnly:是否只解析整型数true或者浮点数false

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值