EL表达式 ﹏ヽ暗。殇╰゛Y 2022-03-02 15:07 188阅读 0赞 # 目录 # * 一、EL表达式简介 * 二、基本语法 * 三、JSP对EL表达式的支持 * 四、运算 * 五、获取值 * 5.1 获取域中存储的值——字符串 * 5.2 获取域中存储的值——对象 * 5.3 获取域中存储的值——List集合 * 5.4 获取域中存储的值——Map集合 # 一、EL表达式简介 # EL(Expression Language)表达式语言。 作用:替换和简化JSP页面中Java代码的编写 # 二、基本语法 # ${ 表达式} # 三、JSP对EL表达式的支持 # JSP默认是支持EL表达式。 忽略EL表达式的两种方式 方式一:忽略当前jsp页面所有表达式:设置page指令中的属性isELIgnored=true <%@ page isELIgnored="true" %> 方式二:忽略某个EL表达式,EL表达式前添加反斜杠\\:$\{表达式\} 页面输出结果是 false \${ 3>5} # 四、运算 # <table> <thead> <tr> <th align="left">类型</th> <th align="left">定义</th> </tr> </thead> <tbody> <tr> <td align="left">算数运算符</td> <td align="left">加(+)、减(-)、乘(*)、除(/或者div)、取余(%或者mod)</td> </tr> <tr> <td align="left">关系运算符</td> <td align="left">>、<、>=、<=、==或eq、!= 【返回值就是true、false】</td> </tr> <tr> <td align="left">逻辑运算符</td> <td align="left">&&或and、||或or、!或者not</td> </tr> <tr> <td align="left">空运算符</td> <td align="left">empty 【判断字符串、集合、数组对象是否为null或者长度是否为0】</td> </tr> <tr> <td align="left">非空运算符</td> <td align="left">not empty 【判断字符串、集合、数组对象不为null并且长度不为0】</td> </tr> <tr> <td align="left">三目运算符</td> <td align="left">A ? B : C</td> </tr> </tbody> </table> 其中, empty: 示例代码: <body> ${ 3>4} \${ 3>5} <hr> <h3>算数运算符演示</h3> ${ 4 + 5}<br> ${ 3 - 1}<br> ${ 3 * 5}<br> ${ 5 / 3}<br> ${ 5 div 3}<br> ${ 5 % 3}<br> ${ 5 mod 3}<br> <h3>关系运算符演示</h3> ${ 3 == 5} ${ 3 eq 5} <h3>逻辑运算符演示</h3> ${ 5 > 3 && 5 > 4} <h3>三目运算符演示</h3> ${ 5 > 3 ? "Tank" : "Alex"} ${ 5 > 3 ? "Tank" : "Alex"} <h3>empty算符演示</h3> <% request.setAttribute("key", "abc"); request.setAttribute("key1", ""); %> <%--判断 域中的key对应的键是否为空或者长度是否为0--%> ${ empty key}<br> ${ empty requestScope.key}<br> <%--判断 域中的key1对应的键是否为空或者长度是否为0--%> ${ empty key1}<br> <%--判断是否不为bull并且长度不为0--%> ${ not empty key} </body> # 五、获取值 # 首先,EL表达式只能从域对象中获取值! 有两种书写方式: ${ 域名.键名} ${ 键名} **从指定域中获取指定键的值。如果$\{域名.键名\}获取值为空,页面不会展示null,不展示任何异常字符。 若域名省略,表示从依次从最小的域中查找是否有该键对应的值,如果中途找到就直接回传,不再继续找下去;但是如果全部的范围都没有找到时,就回传""** 此处可以发现EL表达式一个优点:不会在页面中输出null。 下面我们重点讲解,如何获取域中存储的值为字符串、对象、List集合、Map集合。 #### 1.获取域中存储的值——字符串 #### <body> <% // 在域中存储数据 request.setAttribute("name", "Tank"); session.setAttribute("age", "30"); %> <%--方式一--%> ${ requestScope.name}<br> ${ sessionScope.age}<br> <%--方式二--%> ${ name}<br> ${ age}<br> </body> #### 5.2 获取域中存储的值——对象值 #### 重点掌握,获取值为List集合、Map的方式,均会使用到。 **第一步,定一个User.java** public class User { private String name; private Integer age; private Date birthday; // ==> 被EL表达式调用,属性 birStr /** * @description: 逻辑视图 * 这个get方法,并没有对应User类中的某个成员变量,只是为了页面展示一个好看的格式。这种操作以后常用 */ public String getBirStr() { if (birthday != null) { // 1. 格式化日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 2. 返回字符串 return sdf.format(birthday); } return ""; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } } **第二步** 获取代码: <body> <% // 存储自定义对象 User user = new User(); user.setAge(21); user.setName("Tank"); user.setBirthday(new Date()); request.setAttribute("user", user); %> <h3>EL获取对象中的值</h3> ${ requestScope.user}<br> <%-- 通过的是对象的属性来获取:${ 域对象.键.属性} * 属性:setter或getter方法,去掉set或get,将剩余部分,首字母变小写 ==> 属性 * 比如:setName(String name) ==> 属性为 name --%> ${ requestScope.user.name}<br> ${ user.age}<br> ${ user.birthday}<br> <%--${ user.birthday.year}<br>--%> <%--获取自定义的时间返回值--%> ${ user.birStr} </body> 获取对象的语法: ${ 域对象.键.属性} 自定义对象中的字符串的获取没什么可说的。 birthday属性是Date类型,我们如何按照我们想要的时间格式获取值呢? 这里我们不得不说一个概念:逻辑视图。 **逻辑视图**:给User类添加一个`public String getBirStr(){}`方法,其对应的属性是`birStr`,在方法体中将处理后的结果返回即可。这样我们就可以在EL表达式中获取到我们处理后的结果了。**上述操作,我们会经常用到!** ${ user.birStr} #### 5.3 获取域中存储的值——List集合 #### 语法: 语法:${ 域名.键名[索引]} 值得一说的是,EL内部做了内部优化,获取值时,如果角标越界,不会抛出异常。 下面我们来演示List集合中存储字符串、对象,如何获取: <body> <% User user = new User(); user.setAge(21); user.setName("Tank"); user.setBirthday(new Date()); List list = new ArrayList(); list.add("9"); list.add("6"); list.add(user); request.setAttribute("list", list); %> <%--EL获取域中存储的值_List集合--%> <%--List集合中存储字符串--%> ${ requestScope.list[0]}<br> ${ list[1]}<br> <%--EL内部做了内部优化,如果角标越界,不会抛出异常。--%> ${ list[100]}<br> <%--List集合中存储了对象--%> ${ list[2].name}<br> ${ list[2].age} </body> #### 5.4 获取域中存储的值——Map集合 #### 语法,有两种书写方式: \`\`\`java $\{域名.键名.key名称\} $\{域名.键名\["key名称"\]\} \`\`\` 注意,第二种方式key值必须使用双引号引起来。 下面我们在jsp文件中,演示Map集合中存储字符串、对象,如何获取: <body> <% User user = new User(); user.setAge(21); user.setName("Tank"); user.setBirthday(new Date()); Map map = new HashMap(); map.put("name", "Tank"); map.put("gender", "男"); map.put("user", user); request.setAttribute("map", map); %> <%--EL获取域中存储的值_Map集合--%> <%--语法一--%> ${ map.gender}<br> ${ map.name}<br> ${ map.user.name}<br> <%--获取日期类或自定义类,均可以使用逻辑视图--%> ${ map.user.birStr} <hr> <%--语法二--%> ${ map["gender"]}<br> ${ map["name"]}<br> ${ map["user"].name}<br> ${ map["user"].birStr}<br> </body> 参考:[EL表达式][EL] [EL]: https://baike.baidu.com/item/EL%E8%A1%A8%E8%BE%BE%E5%BC%8F/1190845?fr=aladdin
相关 EL表达式 以下的内容有些参考书上的,有些参考网页的资料。 EL表达式的英文是Exression Language,它是JSP2.0中引入的一个新的内容,通过EL表达式,我们可以简化在J ゝ一纸荒年。/ 2022年09月29日 04:08/ 0 赞/ 117 阅读
相关 EL表达式 这节我们总结一下EL表达式相关内容。 1. EL表达式主要作用 EL表达式说白了,就是让JSP写起来更加方便,它属于JSP技术。那么它主要都有哪些方面的 ╰半橙微兮°/ 2022年09月21日 08:20/ 0 赞/ 158 阅读
相关 EL表达式 el表达式和jstl标签对于学习java的同学一定经常遇到,跟着我的脚步,去了解其用法吧 该博客转载[http://book.51cto.com/art/200907/136 分手后的思念是犯贱/ 2022年08月10日 09:26/ 0 赞/ 115 阅读
相关 EL表达式 1、什么是EL EL(Expression Language) 目的:为了使JSP写起来更加简单。表达式语言的灵感来自于ECMAScript 和 XPath 表达式 朴灿烈づ我的快乐病毒、/ 2022年04月23日 09:06/ 0 赞/ 110 阅读
相关 EL表达式 EL表达式取值 <%@page import="java.util.Map"%> <%@page import="java.util.HashMap"%> 不念不忘少年蓝@/ 2022年03月29日 04:28/ 0 赞/ 167 阅读
相关 EL表达式 目录 一、EL表达式简介 二、基本语法 三、JSP对EL表达式的支持 四、运算 五、获取值 5.1 获取域中存储的值 ﹏ヽ暗。殇╰゛Y/ 2022年03月02日 15:07/ 0 赞/ 189 阅读
相关 EL 表达式 EL 表达式 1 . 语法结构: $\{expression \} 2. \[ \] 与 . 运算符: EL 提供.和\[\]两种运算 逃离我推掉我的手/ 2022年01月10日 07:25/ 0 赞/ 254 阅读
相关 EL表达式 [点击去原文][Link 1] EL表达式总是用大括号括起,而且前面有一个美元符( ) 前 缀 : )前缀: )前缀:\{expression\}。 表示式中第一 Myth丶恋晨/ 2021年12月11日 02:33/ 0 赞/ 285 阅读
相关 EL表达式 EL表达式(只能用在jsp当中写) Expression Language 表达式语言,替代JSP页面中数据访问时的复杂编码,可以非常便捷地取出域对象(pageConte 骑猪看日落/ 2021年09月01日 07:16/ 0 赞/ 388 阅读
相关 EL表达式 1. EL脚本语言的配置和支持: 对于一个单个JSP页面,你可以使用定义page指令来设置jsp页面是否支持EL。默认是支持EL(如果要页面不支持EL,请设置为 末蓝、/ 2021年07月21日 02:07/ 0 赞/ 461 阅读
还没有评论,来说两句吧...