JSP中的EL表达式入门

举报
YuShiwen 发表于 2022/03/30 23:38:12 2022/03/30
【摘要】 一.EL是什么 EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的...

一.EL是什么

EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。

二.EL中的域对象

el有11个内置对象,其中4个是最重要的域对象

  1. pageScope
  2. requestScope
  3. sessionScope
  4. applicationScope
    还有以下7个域对象:
  5. pageContext
  6. param
  7. paramValues
  8. header
  9. headerValues
  10. cookie
  11. initParam

三.用法

1.写法:

${}

2.功能:

简单的运算
取出域对象中的参数并在页面展示

3.EL开关:

默认情况下el表达式是开启的
page指令中定义 isElIgnored=“true” 或者/${表达式}可以关闭el表达式

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="true" %>

  
 
  • 1

\${3+2}

  
 
  • 1

jsp页面不会输出5,而会输出${3+2}

4.取域对象中简单的值

  • 之前我们取域对象的方式:xxx.getAttribute(“键值”));
    例如:request.getAttribute("name"));
  • 用el表达式取域对象值:${键}
    例如:${name}这种方式是从最小的域范围到最大的域范围查找,如果找到符合的键,就取出其值,之后就算更大范围的域对象中有该同名键,也不会被取出来。
  • 也可以精确取出对象值:${xxxScope.键}
    例如:
<%--取出pageContext中的参数--%>
${pageScope.name}
<%--取出request中的参数--%>
${requestScope.name}
<%--取出session中的参数--%>
${sessionScope.name}
<%--取出application中的参数--%>
${applicationScope.name}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

5.取域对象中复杂的值

<%--####################把new出来的对象存入域对象#################--%>
<%
    Hero hero = new Hero();
    hero.setId(001);
    hero.setName("李白");
    hero.setAge(18);
    pageContext.setAttribute("hero",hero);
%>
<%--取出--%>
${pageScope.hero}
${pageScope.hero.id}<br>


<%--#############################把数组存入域对象中######################--%>
<%
    String []s = {"李白","韩信","孙尚香"};
    pageContext.setAttribute("string",s);
%>
<%--取出--%>
${Arrays.toString(pageScope.string)}
${pageScope.string[0]}<br>


<%--#########################把list集合存入域对象中#########################--%>
<%
    ArrayList<Hero> list = new ArrayList<>();
    list.add(hero);
    pageContext.setAttribute("list",list);
%>
<%--取出--%>
${pageScope.list[0]}
${pageScope.list.get(0)}
${pageScope.list[0].name}<br>


<%--############################把map集合存入域对象中#############################--%>
<%
    HashMap<String, Hero> map = new HashMap<>();
    map.put("key",hero);
    pageContext.setAttribute("map",map);
%>
<%--取出--%>
${pageScope.map.key}
${pageScope.map["key"]}
${pageScope.map.key.age}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

文章来源: blog.csdn.net,作者:Mr.Yushiwen,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/MrYushiwen/article/details/107593678

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。