EL表达式

不是一种语言,只是一个表达式而已,是JSP中专门用于显示数据用的
主要作用:获取数据并显示到页面上。

EL:${cart[0].name} 简单,写起来方便。
实际开发:不要在JSP中使用Java表达式,而要使用EL表达式。

EL表达式的基本语法

${EL表达式}
EL表达式,是从四大域对象中取数据的。
EL表达式中没有空指针异常,也没有数组越界,没有字符串连接。

EL中的变量

EL表达式中的的变量就是一个基本的存储单元,EL表达式可以将变量映射到一个对象上
${ name }

EL 中的运算符

1.点运算符(.):用于访问JSP页面中某些对象的属性。
2.中括号运算符([]):用于访问JSP页面中某些对象的属性。
3.算数运算符:进行算数运算
4.比较运算符:用于比较
5.逻辑运算符:对结果为布尔类型的表达式进行运算
6.empty运算符:判断某个对象是否为空,是空为true
7.条件运算符:${A? B:C}三元运算符
8."()"运算符:改变运算优先级

EL隐式对象

隐式对象 作用
1.pageContext 对应于JSP页面中的pageContext对象
2.pageScope 代表page域中用于保存属性的Map对象
3.requestScope 代表request域中用于保存属性的Map对象
4.sessionScope 代表session域中用于保存属性的Map对象
5.applicationScope 代表application域中用于保存属性的Map对象
6.param 表示一个保存了所有请求参数的Map对象
7.paramValues 表示一个保存了所有请求参数的Map对象,它对于某个请求参数, 返回的是一个string类型数组
8.header 表示一个保存了所有http请求头字段的Map对象
9.headerValues 表示一个保存了所有http请求头字段的Map对象,返回string类型数组
10.cookie 表示一个保存了所有cookie的Map对象
11.initParam 表示一个保存了所有web应用初始化参数的map对象

pageContext对象

为了获取JSP页面的隐藏对象可以使用EL表达式中的pageContent隐藏对象
如果某个对象存储的属性名与EL隐式对象的名称相同,EL表达式获取对象属性无法实现

web域相关对象

${pageScope.name }
${requestScope.name} 
${4.sessionScope.name} 
${5.applicationScope.name}

param和paramValues代表请求参数的隐式对象

获取请求参数

param相当于request.getParameter()方法
${param.num}
paramValuesrequest.getParameterValues()方法
${paramValues.num[0]}

initParam

该对象可以获取web应用程序中全局初始化参数
${initParam.count}


  xxx
  yyy
  
   
  iii
  jjj
  

    ${initParam.xxx}
    ${initParam.iii}

代表HTTP请求消息的隐式对象

header和headerValues

定义和使用EL函数

步骤
1、定义一个普通类,提供实现功能的静态方法(EL函数只能调用静态方法)
public class MyFunctions {
    public static String toUppercase(String s){
        return s.toUpperCase();
2、EL函数进行配置:在WEB-INF目录下建立一个扩展名为tld的xml文件。


    1.0
    myfn
    http://www.xxx/xxx/functions//域名作用唯一标识
    
        toUppercase//函数名
        com.xxx.xxx.MyFunctions
          //方法类型,参数类型    
        java.lang.String toUppercase( java.lang.String )
    

3.3、在JSP中使用自定义的EL函数,通过taglib指令引入外部的函数库
<%@ taglib uri="http://www.itheima.com/jsp/functions" prefix="myfn"%>

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