Jsp--EL表达式

EL的作用

  EL(Expression Language)是一门表达式语言,替换Java脚本<%=…%>

<%=  %> 有以下问题

  • 如果获取到数据null, 直接null在页面显示
  • 获取域中的数据, 必须通过域对象.方法获取
  • 需要进行逻辑判断
  • 代码不美观,非Java人员不方便交流

注意:EL对null进行处理, 如果是null,不显示

EL的格式

格式:${…}
例如:${1 + 2}

关闭EL

如果希望整个JSP忽略EL表达式,需要在page指令中指定isELIgnored=”true”。

如果希望忽略某个EL表达式,可以在EL表达式之前添加“\”,例如:\${1 + 2}。

empty运算符(是否为空)

  ${empty “”},可以判断字符串、数据、集合的长度是否为0,为0返回true。(存在返回false)

  empty还可以与not或!一起使用。${not empty “”}

empty()函数内的变量在以下情况会返回true:

  • 1)布尔值false;
  • 2) 整型值0;
  • 3) 浮点型值0.0;
  • 4)空白字符串;
  • 5)字符串‘0’;
  • 6)array()空数组。
  • 7)特殊数据类型NULL。
  • 8)没有任何属性的对象。
  • 9)没有赋值的变量。

EL表达式的内置对象:

  EL一共11个内置对象,无需创建即可以使用。这11个内置对象中有10个是Map类型的,最后一个是pageContext对象。

  • pageScope               page域
  • requestScope           request域
  • sessionScope           session域
  • applicationScope      application域
  • param;                   获取请求参数     一个name 一个值 
  • paramValues;        获取请求参数, String[ ]  一个name对应多个值
  • header;                  获取请求头的属性
  • headerValues;       获取请求的属性, 一个属性名对应多个值
  • initParam;              获取初始化参数
  • cookie;                   获取cookie
  • pageContext;         一个抵10个, 获取真实的request对象,response对象,...(可拿到所有的对象)

EL 最常用的,就是获取域中的数据,  ${属性名}前面的requestScope(域对象)可以省略

1) 获取域中的数据  (重点)***

    获取指定域中的数据:  域内置对象.属性名

全域查找:  ${属性名}从域的小范围到大范围

       首先从page域查找, 如果page域找到, 直接返回page域的数据

       如果page域没有, 去request域查找, 如果找到, 返回request域的数据

       如果request域没有, 去session域查找, 如果找到, 返回session域的数据

       如果session域没有, 去application域查找, 如果找到, 返回application域的数据

       如果application域没有, 返回null   null不显示

2)请求参数相关内置对象

  param:Map<String,String>类型,与request.getParameter()方法相同。

  paramValues:paramValues是Map<String, String[]>类型,当一个参数名,对应多个参数值时(例:复选框)

3)请求头相关内置对象

  header: Map<String,String>类型,用来获取请求头。

  headerValues:headerValues是Map<String,String[]>类型。当一个请求头名称,对应多个值

4)应用初始化参数相关内置对象

  initParam:initParam是Map<String,String>类型。它对应web.xml文件中的<context-param>参数。

<!--初始化参数-->
<context-param>
        <param-name>encoder</param-name>
        <param-value>UTF-8</param-value>
</context-param>

5)Cookie相关内置对象

  cookie:cookie是Map<String,Cookie>类型,其中key是Cookie的名字,而值是Cookie对象本身。

6)pageContext对象

  常用方法:${pageContext.request.contextPath}  获取项目名

  等同于<%=request.getContextPath() %>

posted @ 2020-05-14 19:38  64Byte  阅读(128)  评论(0编辑  收藏  举报