el表达式的作用、JSTL的概念和作用

el表达式的作用

  1. 获取作用域中数据
  2. 用于计算
  3. 小结

jsp与EL的区别:

区别 JSP表达式 EL表达式
语法 <%= 变量或表达式 %> ${变量或表达式}
输出哪里的值 Java中脚本变量值 作用域中值,任何一个作用域都可以

案例:使用JSP和EL取出作用域中的值

分别使用JSP代码和EL从作用域中取数据

从指定的作用域中获取数据

什么是页面域:
  • 对象名:pageContext
  • 范围:只在一个页面起作用
  • 作用域大小比较: 页面域pageContext < 请求域request < 会话域session < 上下文域 application
  • 底层数据结构:都是Map结构,都有三个方法:setAttribute() getAttribute() removeAttribute()
四个与页面域有关的方法:

在这里插入图片描述

示例:取出不同作用域中的值

效果

在这里插入图片描述

代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>四个作用域</title>
</head>
<body>
<%
    //页面域
    pageContext.setAttribute("name","法海");
    //请求域
    request.setAttribute("name","许仙");
    //会话域
    session.setAttribute("name","白素贞");
    //上下文域
    application.setAttribute("name","小青");
%>
<h2>JSP脚本变量输出</h2>
<%
    //删除所有域中同名的键
    //pageContext.removeAttribute("name");
    //删除其中一个域,指定常量:PAGE_SCOPE页面域
    //pageContext.removeAttribute("name", PageContext.PAGE_SCOPE);
%>
页面域: <%=pageContext.getAttribute("name")%><br/>
请求域: <%=request.getAttribute("name")%><br/>
会话域: <%=session.getAttribute("name")%><br/>
上下文域: <%=application.getAttribute("name")%><br/>
自动查找: <%=pageContext.findAttribute("name")%> <br/>

<h2>使用EL输出</h2>
<%--点号后面是键的名字--%>
页面域:${pageScope.name}<br/>
请求域:${requestScope.name}<br/>
会话域:${sessionScope.name}<br/>
上下文域:${applicationScope.name}<br/>
自动查找:${name}
</body>
</html>

在EL中从四个域中取出变量值写法,四个作用域底层都是Map结构

作用域 EL的写法
页面域 ${pageScope.key}
请求域 ${requestScope.key}
会话域 ${sessionScope.key}
上下文域 ${applicationScope.key}
自动查找 ${key}

使用EL取出不同数据类型的值

目标

​ 使用EL,分别从JavaBean,Map,集合List,数组中取出它们的值

效果

在这里插入图片描述

代码

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="com.itheima.entity.Student" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL取不同数据类型的值</title>
</head>
<body>
<h2>得到JavaBean中的属性值</h2>
<%
    Student student = new Student(100,"猪八戒",true,59);
    //把学生放在页面域
    pageContext.setAttribute("stu", student);
%>
<%--可以使用三元运算--%>
${stu.name}   ${stu.gender?"男":"女"}
<hr>

<h2>得到List集合中的值</h2>
<%
    List<String> names = new ArrayList<>();
    names.add("孙悟空");
    names.add("猪八戒");
    names.add("包青天");
    //放请求域
    request.setAttribute("names", names);
%>
<%--通过索引(下标)来取--%>
${names[0]}   ${names[1]}  ${names[5]}
<hr>

<h2>得到数组中的值</h2>
<%
    int[] nums = {101,35,20,67};
    pageContext.setAttribute("nums",nums);
%>
  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值