EL表达式详解

EL表达式目的就式简洁jsp的写法

基本概念

EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。EL 语法很简单,使用上很方便。${}是其语法的关键标志

在这里插入图片描述

测试数据

在这里插入图片描述
js中取出js数据
在这里插入图片描述
比较麻烦

那么EL表达式就可以很好的解决这个问题

在这里插入图片描述

EL表达式可以从request对象中取出请求参数

<%–el表达式从request中获取请求参数–%>
${param.username}

如果没有写作用域:

开始往最小的作用域开始寻找,

在这里插入图片描述
获取对象属性的原理
底层采用了反射机制, 调用的是相应属性的getter方法
${requestScope.user.username }
//获取对象
User value =(User)request.getAttribute(“user”);
//获取对象对应的类
Class clazz = value.getClass();
//通过属性获取属性对应的操作方法
Method method = clazz.getMethod(“get”+“Userame”);
//开始执行
Object returnValue = method.invoke(value);

总结:
EL表达式定义在JSP页面上, 在转译之后的java文件中, 会被转化成java代码
EL表达式是一种后台技术, 服务器上运行, 不是在浏览器上运行,不能用于HTML页面
EL表达式底层是通过反射实现的, 在获取对象属性值时是通过对象的get方法实现的

常用的运算符

1)常用的算术运算符

在这里插入图片描述
2)常用的关系运算符
在这里插入图片描述
在这里插入图片描述

${!(num==10)} 
${not (num==10)}

条件运算符

${条件表达式? 语句1 : 语句2}

${empty 表达式}
返回布尔值判断表达式是否为"空"值,null值、无元素的集合或数组、长度为零的String被认为是空值。

<%
    int score =(int)(Math.random()*101);
    pageContext.setAttribute("score",score);
%>
${score}
${score ge 90 and score le 100?"A":""}
${score ge 80 and score le 89?"B":""}
${score ge 70 and score le 79?"C":""}
${score ge 60 and score le 69?"D":""}
${score lt 60?"E":""}
<br/>

<%
pageContext.setAttribute("a",null);
    pageContext.setAttribute("b","");
    int[] arr ={};
    pageContext.setAttribute("arr",arr);
    List list =new ArrayList() ;
    pageContext.setAttribute("list",list);
%>

判断null
${empty a?"数据没找到":a} <br/>
判断""
${empty b} <br/>
判断空数组
${empty arr} <br/>
判断空集合
${empty list} <br/>
判断空集合
${list.size() eq 0} <br/>
EL表达式详解EL表达式 1、EL简介 1)语法结构 ${expression} 2)[]与.运算符 EL 提供.和[]两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。 例如: ${user.My-Name}应当改为${user["My-Name"] } 如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如: ${sessionScope.user[data]}中data 是一个变量 3)变量 EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为 username的变量。 因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、 Application范围查找。 假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时, 就回传null。 属性范围在EL中的名称 Page PageScope Request RequestScope Session SessionScope Application ApplicationScope 4) 1--EL表达式用${}表示,可用在所有的HTML和JSP标签中作用是代替JSP页面中复杂的JAVA代码. 2--EL表达式可操作常量 变量 和隐式对象. 最常用的 隐式对象有${param}和${paramValues}. ${param}表示返回请求参数中单个字符串的值. ${paramValues}表示返回请求参数的一组 值.pageScope表示页面范围的变量.requestScope表示请求对象的变量. sessionScope表示会话 范围内的变量.applicationScope表示应用范围的变量. 3 -- 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁 止.JSP2.0中默认的启用EL语言. 4-- EL语言可显示 逻辑表达式如${true and false}结果是false 关系表达式如${5>6} 结 果是false 算术表达式如 ${5+5} 结果是10 5--EL中的变量搜
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

DNCS高级工程师

你的创作是我打赏的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值