EL表达式学习笔记

概念

  • Expression Language 表达式语言
  • 语法:${变量名}
  • 本质:简化域对象getAttribute()

作用

  • 替代JSP页面中数据访问时的复杂编码

  • 优化代码(只能在JSP页面内使用)

  • 优化在哪?

<%
	String name = (String)request.getAttribute("name");
%>
<%=name%>

变成了:

${name}
  • 取的是attribute域对象中保存的数据(page、request、session、application)

使用

  • 默认查找优先级(同key):pageContext>request>session>application

  • 指定作用域进行查找

    • ${pageScope.name}
    • ${requestScope.name}
    • ${sessionScope.name}
    • ${applicationScope.name}
  • 也可以使用别的包的类,比如自己new一个user,然后${user.name}

    • 底层:out.write(((User)pageContext.getAttribute(“user”)).getId());
  • 不仅可以get,还可以set——${user.id=3}(但是用的少,一般只是拿来读)

  • 可以取级联——${user.address.value}

  • 与方法绑定,不是与属性关联(属性私有,通过反射访问),在【方法区】找数据,不是【堆】

    • 即使 getNum(){return this.id} 也可以正常返回
  • 还有另一种语法:${user[“name”]} (一般不用)

  • 取集合——$ {list[0].id} 、${list[1].name} …

执行表达式

  • boolean类型

  • 大小比较

    • {num1>num2} => true
    • {num1}>{num2} => 10>9
  • 逻辑运算

    • {num1 && num2} => true
    • {num1 and num2} => true
    • {empty num3} => true 长度为0的String,size为0的集合
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值