关于EL表达式语言的简单总结

来源:互联网 发布:怎么查淘宝注册日期 编辑:程序博客网 时间:2024/05/24 04:54

一、EL简介


  1.  语法结构

El代码 复制代码
  1. ${expression}  

 

  2.  []与 . 运算符
    EL 提供 . 和 [] 两种运算符来存取数据。
    当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。例如:

El代码 复制代码
  1. ${user.My-Name}   应当改为  ${user["My-Name"] }  

 

    如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如:

El代码 复制代码
  1. ${sessionScope.user[data]}中data 是一个变量  

 

  3.  变量
    EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。


    因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。


    假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。


    属性范围在EL中的名称
        Page              PageScope
        Request         RequestScope
        Session          SessionScope
        Application     ApplicationScope
       
二、EL隐含对象

 

  1.  与范围有关的隐含对象
  与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和applicationScope;


  它们基本上就和JSP的pageContext、request、session和application一样;


  在EL中,这四个隐含对象只能用来取得范围属性值,即getAttribute(String name),却不能取得其他相关信息。

  例如:我们要取得session中储存一个属性username的值,可以利用下列方法:

Jsp代码 复制代码
  1. session.getAttribute("username") 取得username的值,  

 

  在EL中则使用下列方法

El代码 复制代码
  1. ${sessionScope.username}  

 

  2.  与输入有关的隐含对象
  与输入有关的隐含对象有两个:param和paramValues,它们是EL中比较特别的隐含对象。
 
  例如我们要取得用户的请求参数时,可以利用下列方法:

Jsp代码 复制代码
  1. request.getParameter(String name)   
  2. request.getParameterValues(String name)  

 

  在EL中则可以使用param和paramValues两者来取得数据。

El代码 复制代码

 

 

 

  3.其他隐含对象
 
  cookie
  JSTL并没有提供设定cookie的动作,


  例:要取得cookie中有一个设定名称为userCountry的值,可以使用${cookie.userCountry}来取得它。

 

  header和headerValues


  header 储存用户浏览器和服务端用来沟通的数据


  例:要取得用户浏览器的版本,可以使用${header["User-Agent"]}。


  另外在鲜少机会下,有可能同一标头名称拥有不同的值,此时必须改为使用headerValues 来取得这些值。

 

  initParam


  initParam取得设定web站点的环境参数(Context)


  例:一般的方法String userid = (String)application.getInitParameter("userid");


    可以使用 ${initParam.userid}来取得名称为userid

 

 

El代码 复制代码

 

 

 

 

三、EL运算符
  1.算术运算符有五个:+、-、*或$、/或div、%或mod
  2.关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge
  3.逻辑运算符有三个:&&或and、||或or、!或not
  4.其它运算符有三个:Empty运算符、条件运算符、()运算符
    例:${empty param.name}、${A?B:C}、${A*(B+C)}
 
四、EL函数(functions)。
  语法:ns:function( arg1, arg2, arg3 …. argN)
  其中ns为前置名称(prefix),它必须和taglib 指令的前置名称一置

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 京东金条银行卡被冻结还不了怎么办 在瑞士刚买的浪琴手表不走了怎么办 刚买的手表表镜有划痕 怎么办 唯品会上买的手表有质量问题怎么办 我买的对方材料没开票给我怎么办 给对方修完车车主不给发票怎么办 买苹果手机花呗额度不够怎么办 苹果手机用别人的手机卡激活怎么办 小米商城花呗分期额度不够怎么办 淘宝已经形成订单商家不发货怎么办 小米商城退款后又想买了怎么办 淘宝退货退款后不想退了怎么办 在转转的商品被屏了怎么办 不懂如何挑选适合自己的衣服怎么办 淘宝购买商品给顾客造成损失怎么办 微信购物地址写错了怎么办 微信购物后一直不发货怎么办 微信购物不发货也不退款怎么办 淘宝退货不小心点了确认收货怎么办 外卖不小心点了确认收货怎么办 圆通快递单号查不到物流信息怎么办 在京东买东西没收到退回去了怎么办 我的东西没收到退回去了怎么办 快递丢了快件丢失了快递公司怎么办 在天猫超市买东西订单关闭了怎么办 淘宝上退货店家收到货不理怎么办 淘宝申请退货退款卖家拒绝怎么办 闲鱼退货卖家拒绝退款怎么办 淘宝退货店家收到货不退款怎么办 卖家拒绝申请我退货了怎么办 衣服洗了卖家拒绝退货怎么办 在京东买的小米手机屏摔碎了怎么办 取消流量漫游后省内不限量怎么办 在淘宝买东西不发货也不退款怎么办 微信上充值电话号码空号怎么办 支付宝转帐到已停机的号码上怎么办 支付宝充话费充错号码怎么办 支付宝话费充错号码了怎么办 村书记打了人不给赔偿药费怎么办 淘宝退给的支付的钱怎么办 淘宝支付了钱没回信息怎么办