20-EL表达式

EL表达式

  • EL表达式全程 Expression language。 表达式语言 。

  • 为什么要用:输出更简单

  • 主要是是输出域对象的数据

代码演示

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
<%
request.setAttribute("key","abc");

%>
  表达式脚本输出key的值是:<%=request.getAttribute("key")%> <br>
  EL输出key的值是:${key}  <br>
  表达式脚本输出key的值是:<%=request.getAttribute("key1")%> <br>
  EL输出key的值是:${key1}
      
      
<%--
表达式脚本输出key的值是:abc
EL输出key的值是:abc
表达式脚本输出key的值是:null
EL输出key的值是:
--%>
  </body>
</html>

EL表达式的格式是 ${表达式}

EL表达式在输出null值的时候,输出的是空串。jsp表达式脚本输出null时,输出的是null

当四个域中都有相同的key的数据的时候,会按域的从小到大的顺序去进行搜索,找到就输出

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
<%
request.setAttribute("key","request");
session.setAttribute("key","session");
application.setAttribute("key","application");
pageContext.setAttribute("key","pageContext");
%>
${key}
  </body>
</html>

EL表达式输出复杂的Bean对象

person类


在这里插入图片描述

---------------------存数据-------------------

jsp中取数据

在这里插入图片描述

它不是直接找person类里的属性,而是找person类里的get方法

EL表达式-----运算

关系运算

在这里插入图片描述

逻辑运算

在这里插入图片描述

算数运算

在这里插入图片描述

empty运算

以下几种情况为空

  • 值为null
  • 值为空串
  • 值是object,长度为0
  • list集合,元素个数为0
  • map集合,元素个数为0
代码演示
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
<%
  request.setAttribute("emptyNull",null);
  request.setAttribute("emptyStr","");
  request.setAttribute("emptyArr",new Object[]{});
  List<String> list=new ArrayList<String>();
  request.setAttribute("emptyList",list);
  Map<String,Object> map=new HashMap<String, Object>();
  request.setAttribute("emptyMap",map);
%>
  ${empty emptyNull} <br>
  ${empty emptyStr}  <br>
  ${empty emptyArr}  <br>
  ${empty emptyList}  <br>
  ${empty emptyMap}  <br>
  </body>
</html>

三元运算

表达式1?表达式2:表达式3

${12=12?"true":"false"}

点运算 和 中括号运算符

两个差不多,只不过[]中括号运算,还可以输出map集合中key里含有特殊字符的值

代码演示

<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    Map<String,Object> map=new HashMap<String, Object>();
    map.put("aaa","aaaValue");
    map.put("b.b.b","bbbValue");
    map.put("c+c+c","cccValue");
    request.setAttribute("map",map);
%>
    ${map.aaa} <br>
    ${map['b.b.b']} <br>
    ${map["c+c+c"]}
</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值