EL表达式和jstl标签

发布于 2019-06-02  154 次阅读


EL表达式

作用:获取作用域对象中的数据;注意:获取的是pagecontext,request,session,Application四个作用域的数据,其他数据一概不理会,找到返回,找不到也不报错;

语法使用:${表达式} 表达式:

注:使用前在<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>加上
isELIgnored="false"

作用域查找顺序

pagecontext---》request--》session--》Application 默认

指定作用域查找${pageScope.键名},${requestScope.键名},
${sessionScope.键名} , ${applicationScope.键名} ;除了pagecontext变成pagescope,其余都是作用域后加个Scope;

EL表达式逻辑运算

${逻辑表达式}、
${关系表达式} 、
${算术表达式} ;

注:“+”表示加法运算,不表示字符连接。使用EL表达式进行字符连接会报错;

EL表达式的空值判断

${empty 键名}

作用:判断键名对象的值是否存在数据。

EL获取请求头数据和cookies数据

请求头数据

${header}-------------返回所有请求头数据

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

${header values[“键名”]}-------------返回指定键名(同键不同值)的值的数组;

cookie数据

${cookie}-------------返回存储的所有cookie对象的map集合

${cookie.键名}-------------返回指定的cookie对象

${cookie.键名.name}-------------返回指定cookie的键名

${cookie.键名.value}-------------返回指定cookie存储数据的值

JSTL标签库

作用:用来提升jsp页面的逻辑代码的编译效率,使用标签来替换逻辑代码的直接书写,高效,美观,整洁,易读。

JSTL核心标签库

使用:1、导入jar包;

2、声明jstl标签库引用

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

基本标签

<c:out value="数据" value="" scope="作用域"></c:out>

数据可以为常量值也可以为EL表达式

作用:将数据输出给客户端

<c:set var="键名" value="" scope="作用域"></c:set>

作用:将数据输出给客户端;

<c:remove var="键名" scope="作用域"></c:remove>

作用:删除作用域中指定的数据

注:如果不指定作用域使用,将会把四个作用域符合要求的数据全部删除;

逻辑标签

<c:if test="${表达式}">前端代码</c:if>

作用:进行逻辑判断,相当于Java代码的单分支判断;

注:逻辑判断标签需要依赖于EL表达式的逻辑运算,也就是表达式涉及到的数据从作用域获取。

<c:choose>

<C:when test=""></c:when>

................................

...............................

<C:when test=""></c:when>

</c:choose>

作用:用来多条件逻辑判断,类似Java中多分支语句<switch>

注:条件成立只会执行一次,都不成立执行otherwise

循环标签(用的比较多)

<c:forEach begin="" end="" step="">

循环体

</c:forEach>

作用:循环内容进行处理

使用:begin:声明循环开始位置

end:声明循环结束位置

step:设置步长

var status:声明变量记录每次循环的数据(角标、次数、是否循环第一次,是否循环最后一次)

注:数据存在作用域中,需要EL表达式获取

例如:${vs.index}角标,
${vs.count}次数 ,
${vs.ifirst}是否第一次循环 ,
${vs.last}是否最后一次循环 ,

动态循环属性:items:声明要遍历的对象,结合EL表达式获取对象

var:声明变量记录每次循环结果。存储在作用域中,需要EL表达式获取;