细说EL表达式

举报
孙中明 发表于 2022/01/22 22:58:52 2022/01/22
【摘要】 文章目录 EL表达式1. 概念:2. 作用:3. 语法:4. 注意:5. 使用: EL表达式 1. 概念: Expression Language表达式语言 2. 作...

EL表达式

1. 概念:

Expression Language表达式语言

2. 作用:

替换和简化jsp页面中java代码的编写

3. 语法:

${表达式}

4. 注意:

  • jsp默认支持el表达式的。如果要忽略el表达式
    1. 设置jsp中page指令中:isELIgnored="true"忽略当前jsp页面中所有的el表达式
    2. \${表达式}忽略当前这个el表达式

5. 使用:

  1. 运算:

运算符:

  1. 算数运算符:+ - * /(div) %(mod)
  2. 比较运算符:> < >= <= == !=
  3. 逻辑运算符:&&(and) ||(or) !(not)
  4. 空运算符:empty
    • 功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0
    • ${empty list}:判断字符串、集合、数组对象是否为null或者长度为0
    • ${not empty str}:表示判断字符串、集合、数组对象是否不为null 并且 长度>0

<body>


    <%
        //在域中存储数据
        session.setAttribute("name","李四");

        request.setAttribute("name","张三");
        session.setAttribute("age","23");

        request.setAttribute("str","");

    %>

<h3>el获取值</h3>
${requestScope.name}
${sessionScope.age}
${sessionScope.haha}

${name}
${sessionScope.name}




</body>


  
 
  • 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

获取值

  1. el表达式只能从域对象中获取值
  2. 语法:
  • .${域名称.键名}:从指定域中获取指定键的值

域名称:

1. pageScope		--> pageContext
2. requestScope 	--> request
3. sessionScope 	--> session
4. applicationScope --> application(ServletContext)

  
 
  • 1
  • 2
  • 3
  • 4
  • 举例:在request域中存储了name=张三
  • 获取:${requestScope.name}
  • .${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。


获取对象、List集合、Map集合的值

  1. 对象:${域名称.键名.属性名}

    • 本质上会去调用对象的getter方法
  2. List集合:${域名称.键名[索引]}

  3. Map集合:
    ${域名称.键名.key名称}
    ${域名称.键名["key名称"]}

<body>

    <%
        User user = new User();
        user.setName("张三");
        user.setAge(23);
        user.setBirthday(new Date());


        request.setAttribute("u",user);


        List list = new ArrayList();
        list.add("aaa");
        list.add("bbb");
        list.add(user);

        request.setAttribute("list",list);


        Map map = new HashMap();
        map.put("sname","李四");
        map.put("gender","男");
        map.put("user",user);

        request.setAttribute("map",map);

    %>

<h3>el获取对象中的值</h3>
${requestScope.u}<br>

<%--
    * 通过的是对象的属性来获取
        * setter或getter方法,去掉set或get,在将剩余部分,首字母变为小写。
        * setName --> Name --> name
--%>

    ${requestScope.u.name}<br>
    ${u.age}<br>
    ${u.birthday}<br>
    ${u.birthday.month}<br>

    ${u.birStr}<br>

    <h3>el获取List值</h3>
    ${list}<br>
    ${list[0]}<br>
    ${list[1]}<br>
    ${list[10]}<br>

    ${list[2].name}

    <h3>el获取Map值</h3>
    ${map.gender}<br>
    ${map["gender"]}<br>
    ${map.user.name}

</body>


  
 
  • 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
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  1. 隐式对象:
  • el表达式中有11个隐式对象
  • pageContext:获取jsp其他八个内置对象
    ${pageContext.request.contextPath}:动态获取虚拟目录

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

原文链接:hiszm.blog.csdn.net/article/details/109606486

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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