EL表达式和JSTL标签库

一、EL表达式

1.EL表达式的语法:

${表达式}

注意:

自带响应功能

2.EL表达式的使用:

1.EL表达式获取请求数据

获取用户请求数据(请求实体)

${param.键名} 获取请求实体中一个键一个值的数据

${paramValues.键名} 获取请求实体中同键不同值的数据,返回的是String数组,可以使用角标直接获取

2.获取请求头数据

${header}  返回所有请求的数据,键值对形式

${header["键名"]} 返回指定的键的请求数据

${headerValues["键名"]}

    3.获取Cookie数据

${Cookie}  获取所有的Cookie键值对 对象

${Cookie.Cookie对象的键名} 获取存储了指定Cookie数据的Cookie对象

${Cookie.Cookie对象的键名.name} 获取存储了指定Cookie数据的Cookie对象的存储的键

${Cookie.Cookie对象的键名.value} 获取存储了指定Cookie数据的Cookie对象的存储的值

3.EL表达式获取作用域数据

1.作用域对象: pageContext request session application

2.作用域数据:我们使用setAttribute方法存储的数据

3.获取:

  普通的字符串数据:${键名}

对象数据:${键名.属性名}

集合数据:

list集合${键名[角标]}

Map集合${map集合作用域存储的键名.map集合存储的数据的键名}

4.作用域查找顺序,

page

request

session

application

如果找到了则不再查找,如果找不到,则继续查找下一个作用域,如果四个都没有找到则什么都不表示

5.指定作用域的获取

${pageScope.键名}  指定了获取pageContext作用域中的数据

${requestScope.键名}  指定了获取requestContext作用域中的数据

${sessionScope.键名}  指定了获取sessionContext作用域中的数据

${applicationScope.键名}  指定了获取applicationContext作用域中的数据

4.EL表达式逻辑运算

1.算术运算:

+,-,*,/在EL表达式中可以直接进行算术运算

${算术表达式} 例如:${1+2}

注意:+表示算术运算,不能进行字符串连接

2.逻辑运算:&&  ! ||

${逻辑表达式}

3.比较运算:==  != >  >=  <  <=

${比较表达式}

4.三目运算

${条件?值:值}

5.EL表达式的empty判断

${empty 键名}

作用:

判断该键是否有存储有效数据

二、JSTL标签库

1、JSTL学习

作用:

在jsp页面使用其可以非常方便的进行数据的处理。较与使用java代码块方法,更加简单,代码更加的简洁易读。

使用:

核心标签库

流程:

导入jar包

引入标签库

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

内容:

基本标签

out标签:

作用:结合EL表达式将数据响应给浏览器 ,如果EL表达式没有收到数据则可以使用dafault属性声明默认值。

set标签:

作用:将数据存储到指定的作用域中,默认是pageContext作用域

注意:

scope的值为 pag request session application

remove标签:

作用:删除作用域中的数据,默认是删除四个作用域中符合要求的数据

注意:

使用pageContext.removeAttriute("键名"), 此方法会将四个作用域中的符合要求的数据全部删除

使用pageContext.removeAttriute(String name,int scope)

指明要删除的作用域中的数据 scope的值为 1pageContext,2request ,3 session,4 application

使用request.removeAttibute("键名") 删除当前作用域符合要求的数据

使用session.removeAttibute("键名")   删除当前作用域符合要求的数据

使用application.removeAttibute("键名") 删除当前作用域符合要求的数据

逻辑标签:

单分支判断标签:

作用:可以根据EL表达式进行一定程度的单分支逻辑判断式。

注意:

test属性中书写的是EL表达式,或者说是EL表达式的逻辑表达式。

该标签只能进行EL表达式相关的逻辑判断。不能进行EL表达式不能获取的数据的逻辑处理

今天天气真好,适合学习2

该标签只能进行EL表达式相关的逻辑判断。不能进行EL表达式不能获取的数据的逻辑处理

多分支判断标签:

..

注意:

符合条件后只会执行一个分支,其他分支不会执行。

循环标签:

循环体

属性:

begin:声明循环的开始位置

end:声明循环的结束位置

step:声明循环的步长

varStatus:声明变量记录循环状态 ,例如变量名:i

注意:记录的数据存储到了作用域中可以直接使用El表达式进行获取

示例:  ${i.index}  获取当次循环的下标

  ${i.count}  获取当次循环的次数

  ${i.first}  判断是否是第一次循环

  ${i.last}     判断是否是最后一次循环

items:声明要遍历的数据,可以是集合和数组等

注意:要使用EL表达式来获取

var:声明变量记录每次遍历的结果。可以做循环体中使用EL表达式获取遍历出来的数据

你可能感兴趣的:(EL表达式和JSTL标签库)