EL表达式

 

             EL表达式可以从域中获取属性。
             1.使用 ${属性名}
                           如果只填写一个属性名,EL表达式会自动做全域查找。
                 (所谓的全域查找,就是按照page request session  application四个域范围内分别,找到就返回属性,如果没找到什么都不返还。 )
             eg:

    <%pageContext.setAttribute("key","keyvalue");%>

    ${key}

    在page request session  application四个域范围内从小到大查找,直到找到key属性

             输出:keyvalue

    2. 我们还可以指定去哪个域查找
                pageScope
                requestScope
                sessionScope
                applicationScope

    eg:${pageScope.key}

    在page域中找到key属性并输出

      注意:EL表达式只能获取域中的属性
                        EL表达式不能直接调用对象的方法

                通过EL表达式读取对象的属性时,只需要${对象.属性名}
                EL表达式会自动调用对象的对应的getter方法,通过将属性名首字母大写,然后加上一个get
                
                注意:只要有属性,就可以一直点下去,也就说对象的属性是对象的话,我们也可以通过对象的属性的属性的方式调用!
                
            - 当读取一些名字比较特殊的属性时,这种特殊值必须要指定域,例如属性名带-:
                ${requestScope['属性名']}

    3.EL内置对象

      3.1常用对象:

      -pageContext
                    类型 PageContext
                        它和JSP中pageContext是一个东西
                    作用 可以获取到JSP中其他的隐含对象
                    
                    例如:可以获取项目名:
                        ${pageContext.request.contextPath }
                
                
                - pageScope
                    类型:Map<String,Object>
                    代表:page域中的属性
                    作用:可以获取到page域中的属性
                    
                - requestScope
                    类型:Map<String,Object>
                    代表:request域中的属性
                    作用:可以获取到request域中的属性
                    
                - sessionScope
                    类型:Map<String,Object>
                    代表:session域中的属性
                    作用:可以获取到session域中的属性
                
                - applicatScope
                    类型:Map<String,Object>
                    代表:application域中的属性
                    作用:可以获取到application域中的属性
                    
                    
                - param
                    类型: Map<String , String>
                    代表:用户发送的请求参数
                    作用:可以获取请求参数
                    用法: ${param.参数名}
                    
                - paramValues
                    类型:Map<String , String[]>
                    代表:一个请求参数对应的多个值
                    用法: ${paramValues.参数名[索引]}
                    
                - header
                    作用:可以获取到用户发送的请求头
                    类型:Map<String , String>
                    例如:获取用户的系统信息 ${header['User-Agent']}

     3.2应了解的对象:

     - headerValues
                    类型: Map<String , String[]>
                    作用:可以获取一个头的多个值
            
                  - initParam;
                    类型:Map<String , String>
                    作用:获取整个WEB应用的初始化参数
            
                  - cookie
                    类型:Map<String , Cookie>
                    作用:用来获取Cookie

 

    4EL运算

    在EL中可以直接使用运算符进行运算。

 

运算符

说明

范例

结果

+

${17+5}

22

-

${17-5}

12

*

${17*5}

85

/div

${17/5}${17 div 5}

3

%mod

取余

${17%5}${17 mod 5}

2

==eq

等于

${5==5}${5 eq 5}

true

!=ne

不等于

${5!=5}${5 ne 5}

false

<lt

小于

${3<5}${3 lt 5}

true

>gt

大于

${3>5}${3 gt 5}

false

<=le

小于等于

${3<=5}${3 le 5}

true

>=ge

大于等于

${3>=5}${3 ge 5}

false

&&and

并且

${true&&false}${true and false}

false

!not

${!true}${not true}

false

||or

或者

${true||false}${true or false}

true

empty

是否为空

${empty “”},可以判断字符串、数据、集合的长度是否为0,为0返回trueempty还可以与not!一起使用。${not empty “”}

true

 


 

posted @ 2017-08-13 18:56  TYD  阅读(200)  评论(0编辑  收藏  举报