EL表达式

为什么要用EL

JavaBean在jsp中的局限性
获取JavaBean属性必须实例化
强制类型转换

EL不会出现空指针错误,空对象就不显示
EL表达式只能在jsp中使用,不能在servlet中使用

什么是EL
EL即Expression Language(表达式语言)

EL的功能
替代jsp页面的复杂代码
EL的语法
$(EL Exprission)
$(bean.name)或$(bean[ ' name ' ])

$(bean.name) 的实质是调用bean的getName()方法
自动转换类型
EL得到某个数据时可以自动转换类型
对应类型的限制更加宽松
使用简单
相比jsp嵌入Java代码,EL应用更简单


EL语法
以${作为开始,以}作为结束
直接使用变量名 获取值$
${ username }
变量属性范围名称
page
request
session
application



EL表达式特点
表达式前没有范围修饰时,默认从最小范围page范围开始寻找
如果没有找到,继续向上找page--request--session--application
有范围修饰:只会在本范围内寻找
$(sessionScope.user.uname)和$(sessionScope.user[ 1 ])



EL运算符
运算符 “ [ ]”
运算符 “ . ”
作用
获取对象的属性
$(user.name) 等价于 $(user [name])
获取对象集合中的数据
Session中保存一个(list)集合users
$(sessionScope.user[ 1 ])获取集合中第二位的对象


运算符 “ [ ]”和运算符 “ . ” 的区别
[ ]可以包含特殊字符,可以包含动态属性,可以是list集合类型的下标,而“ . ”后边不能直接用下标

【】里面除了放下标,其他的都是字符串形式


内部支持一些简单的运算

$(1+2)
$(1 > 2)



隐式对象意思:如${param.uname }中的param就像一个对象一样,调用他的uname属性,所以叫隐式对象
JSP的隐式对象是指在JSP页面系统中已经默认内置的Java对象,这些对象不需要开发人员显式声明即可使用。
比如有9大隐式对象:
request、response、session、application、config、page、pageContext、out、exception。
你不用申明这些对象,就可以直接使用它们

隐式对象类别1:四个作用范围
隐式对象类别2:请求参数
隐式jsp对象类别3:如cook

1.可以直接得到request中的参数
request.getParamter("uname")
${param.uname }


2.如果获取一组数据
如获取checkbox多选框中的内容
${ paramValue.like[ ] }



3.获取存储的cook中的属性
首先获取所有cook再获取指定cook--c1,再获取c1的值
${ cook.c1.value }



获取web.xml中的初始化参数
${ initParamter.context }

获取头信息,如获取localhost:8080
${ header[User-Agent ] }
获取所有的头信息
${ headerValues }




EL表达式隐式对象和jsp隐式对象的区别
可以看大神博客
http://blog.csdn.net/lianjinglei/article/details/8472663

你可能感兴趣的:(EL表达式)