Web 编程基础之el表达式

本文介绍了EL(Expression Language)表达式在Web编程中的基本概念和作用,包括简化脚本、获取域数据、执行运算、调用Java方法等。通过示例展示了EL表达式的用法,如获取数组、集合、对象属性等,并提到了EL表达式与传统脚本的区别以及内置对象的使用。
摘要由CSDN通过智能技术生成

Web 编程基础之el表达式

el表达式

el表达式主要是为了简化脚本的书写的复杂,代替<%=…%>

el表达式的作用:

  1. 获取存放在域中的数据
  2. 执行运算
  3. 获取常见的web的对象
  4. 调用java的方法

格式:

${ el 表达式 }

示例展示:

  1. 使用el表达式取出域中的数据

    实例1:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
      <%--在域中放数据--%>
      <%
        pageContext.setAttribute("xingming","zhangsan");
        application.setAttribute("xinmging2","lisi");
      %>
      <%--获取域中的数据--%>
      ${xingming}
      ${xinmging2}
      </body>
    </html>
    

    注意:el表达式和传统的脚本获取数据的区别

    传统脚本的当取不到域中的数据时,会在浏览器会以null展示

    el表达式在取不到域中的数据时,会以空串展示

1.当不同的域中存放相同的数据的的键时,可以使用下面的方法获取存放在域中的数据:**

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <%--在域中放数据--%>
  <%
    application.setAttribute("data","aaaa");
    request.setAttribute("data","bbbb");
    session.setAttribute("data","ssss");
    pageContext.setAttribute("data","pppp");
  %>
  ${applicationScope.data}
  ${requestScope.data}
  ${sessionScope.data}
  ${pageScope.data}
  </body>
</html>

2.使用el表达式取出数组中的值
获取角标为0的数组的值

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
 <%
    int arr[]={1,2,3,4,5,6,7};
    pageContext.setAttribute("arrs",arr);
 %>
  
  ${arrs[0]}
  </body>
</html>

3.使用el表达式取出集合中的值
通过角标获取集合中的值

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
 <%
   ArrayList<Integer> list = new ArrayList<>();
   list.add(1);
   list.add(2);
   list.add(3);
   pageContext.setAttribute("list",list);
 %>
  ${list.get(0)}
  </body>
</html>

4.el表达式支持运算

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
 ${100>10?true:false}
  </body>
</html>

5.支持java的语法,使用java对象的方法
例如下面获取集合的长度

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
 <%
   ArrayList<Integer> list = new ArrayList<>();
   list.add(1);
   list.add(2);
   list.add(3);
   pageContext.setAttribute("list",list);
 %>
  ${list.size()}
  </body>
</html>

6.获取双链集合中的指定的值map

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
<%
  HashMap<String, String> map = new HashMap<>();
  map.put("学生1","张三");
  map.put("学生2","李四");
  map.put("学生3","王五");
  pageContext.setAttribute("map",map);
%>
  <%--简化的写法--%>
  ${map.学生2}
  <%--正式的写法--%>
  ${map.get("学生1")}
  </body>
</html>

7.获取是对象中定义的变量的值

在普通类定义一个用户实体类

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
<%
  User user = new User("zhangsan",20);
  pageContext.setAttribute("user",user);
%>
  ${user.name}
  ${user.age}
  </body>
</html>

8.获取存放在数组中的对象的属性

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
<%
  User user1 = new User("zhangsan",20);
  User user2 = new User("lisi", 23);
  User user3 = new User("wangwu", 24);
  LinkedHashMap<String, User> map = new LinkedHashMap();
  map.put("s001",user1);
  map.put("s002",user2);
  map.put("s003",user3);
  pageContext.setAttribute("map",map);
%>
  ${map.get("s001").name}
  ${map.get("s001").age}
  </body>
</html>
————————————————
版权声明:本文为CSDN博主「GEX0o0」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gexin0517/article/details/100773813<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
<%
  User user1 = new User("zhangsan",20);
  User user2 = new User("lisi", 23);
  User user3 = new User("wangwu", 24);
  LinkedHashMap<String, User> map = new LinkedHashMap();
  map.put("s001",user1);
  map.put("s002",user2);
  map.put("s003",user3);
  pageContext.setAttribute("map",map);
%>
  ${map.get("s001").name}
  ${map.get("s001").age}
  </body>
</html>

9.判断一个对象是否为空,判断一个容器的长度是否为0

  <%--判断这个容器是否为空--%>
  ${empty map}
  <%--判断这个容器是否不为空--%>
  ${not empty map}

10.el表达式的11个内置对象

pageScope、requestScope、sessionScope、applicationScope、param、paramValues、header、haederValues、initParam、cookie
el表达式的内部对象cookie对象
${cookie.给cookie起名字.value}
获取jessionion的值
${cookie.JSESSIONID.value}

11.通过el表达式获取项目的路径

${pageContext.request.contextPath}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值