美文网首页
EL表达式

EL表达式

作者: cccccttttyyy | 来源:发表于2018-08-28 09:58 被阅读0次

EL表达式语法

${ EL expression}
其中:
$ 表示EL表达式的开始。
EL expression指定表达式。

EL操作符

  1. “.”操作符
    用来访问对象的某个属性,如${user.name}
  2. "[]"
    用来访问对象的某个属性,如${user['name']}
    更多作用
    (1) 属性名中包含 . -等特殊字符,此时只能使用'[]'
    (2) 访问数组 ${arr[1]}
    (3) 动态访问 ${user[x]} x是变量 改变x即可

算术表达式

“+”,“-”、“*”、“/”、div、“%”或mod

${1+1 }<br><!-- 输出:2 -->
${'1'+1.1 }<br><!-- 输出:2.1 -->

关系操作符

==(eq) !=(ne) >(gt) <(lt) >=(ge) <=(le)

${"a"=="a"} ${"a"eq"a"}      true

逻辑操作符

&& || !

empty操作符

<!-- empty操作符 -->
${empty s }<br><!-- 输出:true -->
${!empty s }<br><!-- 输出:false -->
${not empty s }<br><!-- 输出:false -->
${!not empty s }<br><!-- 输出:true -->

EL内置对象

  1. 域对象
<%
    pageContext.setAttribute("a", "1");
    request.setAttribute("a", "2");
    session.setAttribute("a", "3");
    application.setAttribute("a", "4");
%>
${pageScope.a }<!-- 输出:1 -->
${requestScope.a }<!-- 输出:2 -->
${sessionScope.a }<!-- 输出:3 -->
${applicationScope.a }<br><!-- 输出:4 -->
${a }<!-- 输出:1 -->

${a }底层使用pageContext.findAttribute(“a”),依次从page、request、session、application的域范围中寻找”a”属性,如果都没有则返回null 。

  1. param paramValues
<!-- 这里使用get的提交方式测试,直接在URL中拼接参数。
    (请求路径:http://localhost:8080/web上下文路径/index.jsp?name=zhang&hobby=篮球&hobby=足球)
 -->

${param.name }<br><!-- 输出:zhang -->
${param.hobby }<br><!-- 输出:篮球 -->
${paramValues.name }<br><!-- 输出:[Ljava.lang.String;@7c244cff -->
${paramValues.name[0] }<br><!-- 输出:zhang -->
${paramValues.hobby }<br><!-- 输出:[Ljava.lang.String;@5ae7ad90 -->
${paramValues.hobby[1] }<br><!-- 输出:足球 -->

${param.xxx } 相当于reuqest.getParameter(“xxx”);
${paramValues.xxx } 相当于reuqest.getParameterValues(“xxx”);

  1. header headerValues
${header.accept }<br>
<!-- 输出:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,
image/apng,*/*;q=0.8 -->

\${header.accept-Encoding }<br>
<!-- 输出:\${header.accept-Encoding },需要注意(输出中不会输出"\",因为我不这样写,会直接报
异常),"-"被解析成减号,导致抛出异常,在语句最前面写上"\",转义$符号,就可以将语句原样输出 -->

${header['accept-Encoding'] }<br><!-- 输出:gzip, deflate, br -->
${headerValues['accept-Encoding'] }<br><!-- 输出:[Ljava.lang.String;@2f08b521 -->
${headerValues['accept-Encoding'][0] }<br><!-- 输出:gzip, deflate, br -->
  1. 其他
<!-- 输出上下文路径 -->
${pageContext.request.contextPath }
<!-- 输出cookies -->
${cookie }
<!-- 输出:{JSESSIONID=javax.servlet.http.Cookie@5197416d,
 Webstorm-77d15532=javax.servlet.http.Cookie@3f5b951a, 
 Webstorm-6c1ac651=javax.servlet.http.Cookie@536cda57} -->

EL获取数据

<%
Map<String, User> umap = new HashMap<String, User>();
umap.put("user1", new User("zhang",18));
umap.put("user2", new User("xiao",36));
pageContext.setAttribute("umap", umap); 
%>
${umap }<br><!-- 输出:{user1=User [name=zhang, age=18], user2=User [name=xiao, age=36]} -->
${umap.user2 }<br><!-- 输出: User [name=xiao, age=36] -->
${umap.user1.age }<br><!-- 输出:18 -->
${umap['user2'].name }<br><!-- 输出:xiao 需注意,这种方式要求map的key必须是String类型-->
${umap['user2']['name'] }<br><!-- 输出:xiao -->
${umap['user2']['age'] }<br><!-- 输出:36 -->
${umap['user2'][age] }<br><!-- 不会报错,但什么也获取不到 -->

相关文章

  • JSTL与EL表达式笔记

    EL表达式应用 初始EL表达式 EL表达式 EL(Expression Language)表达式语言用于简化JSP...

  • EL表达式

    EL表达式语法 ${ EL expression}其中:$ 表示EL表达式的开始。EL expression指定...

  • EL表达式详解

    一、EL表达式简介 EL 全名为Expression Language。EL主要作用: 获取数据:EL表达式主要用...

  • 4.El表达式

    1.EL表达式 1.EL表达式的作用 2. EL语法

  • 【JavaWeb】EL表达式

    EL表达式 EL表达式语言,用于简化JSP的输出;EL表达式的基本语法:${表达式};示例: 学生姓名:${stu...

  • 17.3EL表达式

    一、EL表达式简介 EL 全名为Expression Language。EL主要作用:1、获取数据EL表达式主要用...

  • day07

    EL表达式&JSTL EL表达式的学习路线:1 EL表达式的由来2 使用EL获取web四个容器(page、re...

  • JSTL和EL表达式

    EL表达式 表达式语言(Expression Language),或称EL表达式,简称EL,是Java中的一种特殊...

  • 20160928------EL表达式

    一、EL表达式:Expression Language EL表达式提供了获取对象以及属性的简单方法 二、EL表达式...

  • 5、jstl与el表达式

    1、什么是el表达式 el表达式会自动类型转换 对类型没有强制要求 使用简单 2、el表达式作用范围 EL最主要的...

网友评论

      本文标题:EL表达式

      本文链接:https://www.haomeiwen.com/subject/lyxfwftx.html