EL表达式 (超级详细!!)

EL表达式

1.EL表达式的语法

EL(expression language)是为了让JSP写起来更加方便,他提供了在jsp中简化表达式的方法,让jsp的代码更加简化

语法结构:${expression}

注意,EL表达式一般操作的都是域对象中的数据,操作不了局部变量.

eg:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL表达式</title>
</head>
<body>
  <%
      pageContext.setAttribute("username","zhangsan");
      request.setAttribute("username","lisi");
      session.setAttribute("username","wangwu");
      application.setAttribute("username","zhaoliu");
  %>
  <pre>
        获取作用域中username: ${username}<br><%-- 默认从小到大的范围中找,找到的第一个返回 --%>
        不在作用域中的: ${password}
        <%--获取request作用域中的username: ${requestScope.username}
        获取session作用域中的username: ${sessionScope.username}
        获取application作用域中的username: ${applicationScope.username}--%>
  </pre>
</body>
</html>

在这里插入图片描述

不在作用域中的不是显示null,而是显示为空

域对象的概念在jsp中共有四种,分别是pageContext,request,session,application,范围依次是-> 本页面,一次请求,一次会话,整个应用程序

从指定范围中取值,以及取值默认规则

  • 当需要指定从某个特定的域对象中查找数据的时候可以使用四个域对象对应的空间对象分别为:pageScope,requestScope,sessionScope,applicationScope
  • EL默认的查找方式为:从小到大查找,找到了即返回,若未查找到则返回空字符串

2.实例

1.获取指定范围的username


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL表达式</title>
</head>
<body>
  <%
      pageContext.setAttribute("username","zhangsan");
      request.setAttribute("username","lisi");
      session.setAttribute("username","wangwu");
      application.setAttribute("username","zhaoliu");

  %>
  <pre>
         获取pageContext作用域中的username:  ${pageScope.username}
         获取request作用域中的username: ${requestScope.username}
         获取session作用域中的username: ${sessionScope.username}
         获取application作用域中的username: ${applicationScope.username}
  </pre>
</body>
</html>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h7npPlcT-1606819321488)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201201175403344.png)]

2.获取作用域中的集合

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL表达式</title>
</head>
<body>
  <%
      List<String> list=new ArrayList<String>();
      list.add("aaa");
      list.add("bbb");
      list.add("ccc");
      request.setAttribute("list",list);
  %>
  <pre>
           获取list中指定下标的数据:${list[1]}--${list[2]}
           获取集合的长度:${list.size()}
           list代表的是存在域对象中的变量名(限域变量名)
  </pre>
</body>
</html>

!](https://img-blog.csdnimg.cn/2020120118442743.png)

3.获取JavaBean对象


<%@ page import="com.User.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL表达式</title>
</head>
<body>
  <%
         User user=new User();
         user.setUsername("zhangsan");
         user.setSex(true);
         user.setUserId(1);
         request.setAttribute("user",user);//设置域对象属性
  %>
  <pre>
         获取JavaBean中的username  ${user.username}
         获取JavaBean中的userId    ${user.userId}
         获取JavaBean中的sex       ${user.sex}     
  </pre>
</body>
</html>

在这里插入图片描述

4.empty

在这里插入图片描述

 判断JavaBean中的User是否为空 ${empty user}<%--返回true则为空% 结果为false-->

3.EL表达式的运算

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值