EL表达式的学习
英文名Expression Language表达式语言
${变量名}
这是一个跳转操作,执行完之后网址不会发生改变
由咱们之前的截图我们可以看出来,上下两种方法输出的结果是一样的,而第一种和明显比第二种复杂许多,所以咱们也就应该晓的了该表达式的存在的含义
可以非常方便的取出域对象(page,request,session,application)中的数据,但前提是一定要先setAttribute,也就是说EL只是在简化get操作
而这四个的优先级和存储范围正好相反
而在${变量名}里面的变量名就是setAttribute对应的key值{“key”,“数据”}
当然如果我们不想按他规定的来的话,
咱们可以在数据的前面加上域对象Scope.key 这样咱们就取的是该域对象的数据了
掉用一个类里面的方法这样输出的话就是输出这个数据的hash值和全类名(未设计tostring方法)
设计了之后就会输出信息
ei表达式只可以在jsp里面使用
访问到的是属性里面的get方法(ei)
数据级联
<% String name = (String) request.getAttribute("name"); User user=new User(12,"刘同人",44.56); pageContext.setAttribute("user",user); %> <hr/> <table> <tr> <th>编号</th> <th>姓名</th> <th>成绩</th> </tr> <tr> <th>${user.id}</th> <th>${user.name}</th> <th>${user.score}</th> </tr> </table>
本质是调用tostring方法
这样子也是一个意思
el可以执行表达式
&& || ! <,> ==
${num1>num2}
返回true或false
可以使用and代替&&,但是必须留空格
&& and
|| or
! not
== eq
!= ne
< lt
> gt
<= le
>= ge
empty (变量为null,string的长度为0,size为0的集合)【返回true或者false】加个not就反回来了
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决