JSP中EL表达式的简单介绍和使用

 

参考资料:

http://www.java3z.com/cwbwebhome/article/article8/8124.html?id=2453

 

http://www.blogjava.net/rabbit/archive/2010/01/22/310560.html

 

 

写在前面的话:J2ee5默认不支持El表达式,如何开启支持?见我的另一篇文章。

J2EE5(Servlet2.5)对EL表达式的支持

 

 

 

 

1.什么是EL表达式

EL

Expression Language
(表达式语言)最初是在
JSTL1.0
中定义,
JSP2.0
引入,可以和
JSTL
结合使用也可以了
scriptlets
结合使用。


2.常用功能

A.取值(一级或多级)      B.执行逻辑关系运算


3.EL表达式的取值操作(${ bean.name }



 

${ 
bean['name'] }

     3.1.${obj}//会自动到内置对象(pageScope,requestScope,sessionScope,applicationScope)里面获取名为“obj”的属性。如同以下代码。在这里如果request和session范围都有一个名为“obj”的属性,那么取到的是request范围内的。也就是说它查找的范围是从小到大,如果找到就不再去大范围内找。如果没有找到,就接着向大的范围搜索,如果最后都找完了,还是没找到,那么就是null,在页面显示的就是空白。
当然这里我们也可以指定范围,例如${sessionScope.userName},这个时候就只会到session里面去搜索,如果找不到就是null。

<%=session.getAttribute("obj")%><jsp:getProperty name="" property=""/>

 


 

     3.2.${obj.attr1}//这里和上面不同的一点是,它是多级的。也就是说obj这个属性对应的不再是一个简单的字符串(String)或者数字(Integer)(当然这里也会自动装箱拆箱),而是我们自己定义的一个POJO的对象。此时我们用${obj}取到的是obj对应的对象的内存地址,如果要访问他的属性,就按“对象.属性”的方法。如果要获取User这个对象的name属性。$(user.name),这个其实调用的是user.getName()方法。所以我们的POJO要提供相应的getter,这里才能取到。


4.EL表达式的逻辑运算操作(与JSTL条件判断标签结合使用)


 ${1==2}
${obj1.age>obj2.age && 1>0}
${empty obj.address}${not empty obj.address}
${null==obj} <c:if test="${null==obj}">
Hello EL!
</c:if>

 条件判断主要是用于判断真假,这里要注意一下“empty”。

JSP_EL使用的更多相关文章

  1. JSP_EL的回顾

    在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现.鉴于此,出现了 JSTL ( JSP Standa ...

随机推荐

  1. Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)

    这节我们来学习Cocos2d-x的最后一节.怎样处理重力感应事件.移植到Android后加入再按一次返回键退出游戏等.我这里用的Android.IOS不会也没设备呃 效果图不好弄,由于是要移植到真机上 ...

  2. JtextField的延时更新

    import java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.a ...

  3. cocos2d-x android 字体的设置

    我们知道 ios 自带的字体 和 android 自带的字体不同 为了使我们开发的游戏中的字体统一 我们就需要自己的字体(包括从mac 拷贝出来的 字体) 从 mac 中 copy 出 Thonbur ...

  4. PERL 学习

    http://ju.outofmemory.cn/entry/193944 http://blog.sina.com.cn/s/blog_6a6c136d0101dlcw.html http://bl ...

  5. Android之桌面组件AppWidget

    转载:Android之桌面组件App Widget初探 Android开发应用除了程序应用,还有App Widget应用.好多人会开发程序应用而不会开发App Widget应用.本帖子就是帮助大家学习 ...

  6. 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  7. WPF 之 未捕获异常的处理

    首先,我们当然是要求应用程序开发人员,尽可能地在程序可能出现异常的地方都去捕捉异常,使用try…catch的方式.但是总是有一些意外的情况可能会发生,这就导致会出现所谓的“未捕获异常(Unhandle ...

  8. A Simple Problem with Integers poj 3468 多树状数组解决区间修改问题。

    A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 69589   ...

  9. DIH

    DIH内存溢出: 在使用DIH时,容易报内存溢出错误.可以通过设置jvm大小来解决.设置方法如下: 在tomcat\bin\startup.bat 加入SET JAVA_OPTS=-Xms128m - ...

  10. Java快速入门

    Java 是什么? Java 的特点: 面向对象 平台无关(跨平台): 简单 安全 体系结构 - 中性 可移植 健壮 多线程 解释型 高性能 分布式 动态 Java环境设置: Java SE可免费提供 ...