EL表达式

EL表达式:使jsp和servlet之间数据的流转更加便捷

<%@ page language="java" import="java.util.*,com.facai.pojo.*" pageEncoding="utf-8"%>
<!-- 用传统方式将Servlet中的数据流转到jsp中 -->
<h3>使用传统方式获取作用域数据</h3>
<%=request.getAttribute("str")%><br/>
<%=((User)request.getAttribute("user")).getFav()%><br/>
<%=((ArrayList)request.getAttribute("list")).get(2)%><br/>
<%=((User)((ArrayList)request.getAttribute("list")).get(3)).getFav()%><br/>
<%=((HashMap)request.getAttribute("hs")).get("a1")%><br/>
<%=((User)((HashMap)request.getAttribute("hs")).get("user")).getFav()%><br/>
<hr/>
<h3>使用EL表达式获取作用域数据</h3>
${str}<br/>
${user.fav}<br/>
${list[2]}<br/>
${list[3].fav}<br/>

EL表达式的语法:
${表达式}
注意:EL自带响应功能
EL表达式的使用:

  1. EL表达式获取请求数据
  2. EL表达式获取作用域数据
  3. EL表达式获取逻辑运算
  4. EL表达式的empty判断

1.EL表达式获取请求数据
${param.键名} 获取请求实体中一个键一个值的数据
${paramValues.键名} 获取请求实体中同键不同值的数据,返回的是String数组,可以使用角标直接获取 例如:爱好

<h3>获取用户请求数据</h3>
<%=request.getParameter("uname")%>---${param.uname}<br/>
<%=request.getParameterValues("fav")[1]%>---${paramValues.fav[1]}<br/>

2.获取请求头数据
${header} 返回所有的请求头数据,键值对形式
${header[“键名”]} 返回指定的键的请求头数据
${headerValues[“键名”]}

<%=request.getHeader("User-Agent") %>--${header["User-Agent"]}--${headerValues["Accept-language"][0]}<br/>

在这里插入图片描述
3.获取cookie数据
${cookie} 获取所有的Cookie对象 键值对
${cookie.Cookie对象的键名} 获取存储了指定Cookie数据的Cookie对象
${cookie.Cookie对象的键名.name} 获取存储了指定Cookie数据的Cookie对象的存储的键
${cookie.Cookie对象的键名.value}获取存储了指定Cookie数据的Cookie对象的存储的值

${cookie}<br/>
${cookie.JSESSIONID}<br/>
${cookie.JSESSIONID.name}--${cookie.JSESSIONID.value}<br/>

在这里插入图片描述
3.获取对象数据
EL表达式获取作用域数据
作用域对象:pageContext request session application
作用域数据:我们使用setAttribute方法存储的数据
获取:
普通字符串数据 ${键名}
对象数据 ${键名.属性名}
集合数据
list集合 ${键名[角标]}
Map集合 ${map集合作用域存储的键名.map集合存储的数据的键名}

作用域数据查找顺序:如果找到了则不再查找,如果找不到,则继续查找下一个作用域,如果四个作用域中都没有则什么都不显示
pageContext–>request–>session–>application
指定作用域获取数据:
${pageScope.键名} 指明获取pageContext作用域中的数据
${requestScope.键名} 指明获取request作用域中的数据
${sessionScope.键名} 指明获取session作用域中的数据
${applicationScope.键名} 指明获取application作用域中的数据

<h3>EL获取作用域数据时作用域的查找顺序</h3>
<%
	pageContext.setAttribute("hello", "hello pageContext");
	request.setAttribute("hello","hello request");
	session.setAttribute("hello", "hello session");
	application.setAttribute("hello", "hello application");
%>
${hello}<br/>

在这里插入图片描述

<h3>EL获取作用域数据时作用域的查找顺序</h3>
<%
	//pageContext.setAttribute("hello", "hello pageContext");
	request.setAttribute("hello","hello request");
	session.setAttribute("hello", "hello session");
	application.setAttribute("hello", "hello application");
%>
${hello}<br/>

在这里插入图片描述
4.逻辑运算
算术运算:+,-,*,/ 在EL表达式中可以直接进行算术运算
算 术 表 达 式 例 如 : {算术表达式} 例如 : :{1+2}
注意:+表示算术运算,不能进行字符串连接
逻辑运算:&& || !
${逻辑表达式}
注意:没有单& 和单|
比较运算:== != >,>=,<,<=
${比较表达式}
三目运算:
${条件?值:值}

<h3>EL表达式的逻辑运算</h3>
<%
	request.setAttribute("a", "2");
%>
${1+2} --${2*3}--${a+3}--${1+"5"}<br/>
${2>3&&4>3}--${2>3||4>3}--${!(2>3&&4>3)}<br/>
${2==a}<br/>
${2>3?"男":"女"}<br/>

在这里插入图片描述
5.empty运算
EL表达式的empty判断
${empty 键名}
作用:
判断该键是否有存储有效数据

<h3>EL表达式的empty运算</h3>
<%
	request.setAttribute("str", "");
	User u=new User();
	request.setAttribute("u", u);
	ArrayList It=new ArrayList();
	request.setAttribute("It", It);
%>
${empty str}<br/>
${empty u}<br/>
${empty It}<br/>

注(因为User实体类具有默认值所以结果为false)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值