【JavaWeb】13-EL表达式

本文详细介绍了JSP的内置表达式语言(EL),从其基本格式到各种运算,包括算术、关系、逻辑、三元表达式等。EL表达式还展示了如何获取Java对象属性、域中的数据以及常用的JSP内置对象,如cookie、pageContext和请求参数。同时,文中通过实例演示了调用Java方法和使用枚举的操作。此外,还探讨了EL表达式的其他内置对象,如请求头、初始化参数和请求参数相关对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念:jsp的内置表达式语言,从jsp2.0开始,用来代替<%=…%>

格式

${el表达式主体}

作用:

  1. 执行运算
1.算术
${1 + 2}//3
2. 关系
${1 > 2}//false
3. 逻辑
${ (1 > 2) || (1 < 2) }//true
4. 三元表达式
${1 > 2 ? "1 > 2" : "1 < 2"}
5. +号不支持字串的拼接但是支持数字字符串的运算
${"1" + "2"}//3
  1. 获取java对象中的数据

这里注意:java的对象需要存在域中,获取对象属性直接.属性名即可,不管是不是public

<%
    Student stu = new Student(1L, "小王", (short)18, (byte)1, "1388888888");
    pageContext.setAttribute("stu", stu);
%>

姓名:${stu.name}//小王
性别:${SexEnum.values()[stu.sex].getDesc()}//这里使用了枚举没列出,男
手机号:${stu.mobile}//手机号
  1. 获取域中的数据
    1. 通过 ${域中属性名}方式获取值,作用域范围越小优先级越高。
    2. 可以使用el表达式内置对象获取指定域中的数据
    3. ${ 域内置对象[“域中属性名”] }
    4. ${ 域内置对象.域中属性名 }
EL表达式四大内置对象:
pageScope: 类似jsp内置对象pageContext
requestScope: 类似jsp内置对象request
sessionScope: 类似jsp内置对象session
applicationScope: 类似jsp内置对象application
<%
    pageContext.setAttribute("key1","pageContext");
    request.setAttribute("key1","request");
    session.setAttribute("key1","session");
    application.setAttribute("key1","application");
%>
域中的数据:${ key1 };//pageContext,因为范围最小
获取application域中的数据:${applicationScope.key1}//application
获取request域中的数据:${requestScope["key1"]}//request
  1. 获取常见的jsp内置对象

1.cookie内置对象

表达式:${cookie.cookie的key.value}
举例:
创建一个cookie:
Cookie usernameCookie = new Cookie("username", username);
设置生命周期:
usernameCookie.setMaxAge(60 * 60 * 24 * 7);

EL表达式获取cookie
${cookie.username.value}

2.pageContext可以获取其他的jsp内置对象

获取页面的根路径
${ pageContext.request.contextPath }
  1. 调用java的方法
还是以之前的枚举为例
${ RoleEnum.values()[onlineUser.role].getDesc() }

EL表达式的其他内置对象

  1. 请求参数相关内置对象
param
paramValues

获取表单提交的数据

params.username
//当请求参数是一个复选框时
paramValues.hobby
  1. 请求头相关内置对象
header
headerValues
  1. 初始化参数相关内置对象
initParam
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值