JSP-EL表达式

一、EL表达式简介

       EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。因为jsp需要和servlet交互,所以jsp和servlet相互传递数据时,少不了在jsp中使用servlet代码,但是对于一切前端做UI的工作人员就显得比较困难了,这时EL表达式正好解决了这个问题,也使得代码写起来更加简单也更加容易维护。使用EL表达式不需要另外添加jar包,因为jdk中自带有解析EL表达式的jar包

二、基本语法

    (1)EL表达式怎么用

           形如:{expression}   其中expression有两种方式存取数据比如user.username和user['username']来获取到user对象的username

           ps:以下情况必须使用[]来获取数据:

                1、当遇到存储的属性名称中存在.或者-等特殊字符时     

                                       {sessionScope.user.u-name}  是错误的,因为存在特殊字符

                                        {sessionScope.user['u-name']} 是正确的

                2、当遇到动态取值时

                                        {sessionScope.user.name}   其中name是一个变量并不是user对象的name属性值,是取不出来值的

                                        {sessionScope.user[name]}   是可以取出来的

                                        这里的name可以理解为jsp页面的servlet代码里面的name变量,而不是对象自带属性

                3、要在数组或集合使用索引取值时

                                        {sessionScope.user[0].username}   表示取多个user对象中的第一个对象的用户名值

三、JSP中的隐含对象

       当我们取值时可以省略最前面的sessionScope等存储数据的对象,比如当我们想要取{user,username},这时我们并没有指定user对象存储的范围,那么默认会从page开始查找,如果page中不存在该对象,就继续依次在request、session、application中查找user对象,知道找到user对象为止,假若在其中找到了user对象,就停止在下面的对象域中继续查找;假若一直到尾就没找到user对象那就返回一个null,null在jsp中显示为空白,不会出现null字样

EL表达式的四大存储域隐含对象
 {pageScope.user.username}在page域中查找user对象,并显示user对象中的username属性值
{requestScope.user.username}在request域中查找user对象,并显示user对象中的username属性值
{sessionScope.user.username}在session域中查找user对象,并显示user对象中的username属性值
{applicationScope.user.username}在application域中查找user对象,并显示user对象中的username属性值

EL表达式的11个隐含对象
隐含对象类型说明
pageContextjavax.servlet.ServletContext表示此JSP页面的pageContext
pageScopejava.util.Map存数据的page域
requestScopejava.util.Map存数据的request域
sessionScopejava.util.Map存数据的session域
applicationScopejava.util.Map存数据的application域
paramjava.util.Map如同ServletContext.getParameter(String name) 返回String类型的值
paramValuesjava.util.Map如同ServletContext.getParameterValues(String name) 返回String[]类型的值
headerjava.util.Map如同ServletContext.getHeader(String name) 返回String了类型的值
headerValuesjava.util.Map如同ServletContext.getHeaders(String name) 返回String[]了类型的值
cookiejava.util.Map如同ServletContext.getCookies()
initParamjava.util.Map如同ServletContext.getInitParameter(String name) 返回String类型的值

四、el表达式的运算

   这个我打算多说,el表达式和许多面向对象语言的表达式一样,把不同的是el表达式中的运算符可以使用其他字符来代替,其实作用都是相同的,我个人认为了解一下就行了

==(eq)   !=(ne)    <(lt)    >(gt)    <=(le)    >=(ge)    &&(and)   ||(or)   !(not)

   




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值