原文地址:https://www.cnblogs.com/xdp-gacl/p/3938361.html
一、EL表达式简介
EL 全名为Expression Language。EL主要作用:
1、获取数据
EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)
2、执行运算
利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}
3、获取web开发常用对象
EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。
4、调用Java方法
EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。
1.1、获取数据
使用EL表达式获取数据语法:"${标识符}"
EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回””
(注意,不是null,而是空字符串)。
EL表达式可以很轻松获取JavaBean的属性,或获取数组、Collection、Map类型集合的数据
el表达式获取数据范例:
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
3 <%@page import="me.gacl.domain.Person"%>
4 <%@page import="me.gacl.domain.Address"%>
5 <!DOCTYPE HTML>
6 <html>
7 <head>
8 <title>el表达式获取数据</title>
9 </head>
10
11 <body>
12 <%
13 request.setAttribute("name","孤傲苍狼");
14 %>
15 <%--${name}等同于pageContext.findAttribute("name") --%>
16 使用EL表达式获取数据:${name}
17 <hr>
18 <!-- 在jsp页面中,使用el表达式可以获取bean的属性 -->
19 <%
20 Person p = new Person();
21 p.setAge(12);
22 request.setAttribute("person",p);
23 %>
24 使用el表达式可以获取bean的属性:${person.age}
25 <hr>
26 <!-- 在jsp页面中,使用el表达式可以获取bean中的。。。。。。。。。的属性 -->
27 <%
28 Person person = new Person();
29 Address address = new Address();
30 person.setAddress(address);
31
32 request.setAttribute("person",person);
33 %>
34 ${person.address.name}
35 <hr>
36 <!-- 在jsp页面中,使用el表达式获取list集合中指定位置的数据 -->
37 <%
38 Person p1 = new Person();
39 p1.setName("孤傲苍狼");
40
41 Person p2 = new Person();
42 p2.setName("白虎神皇");
43
44 List<Person> list = new ArrayList<Person>();
45 list.add(p1);
46 list.add(p2);
47
48 request.setAttribute("list",list);
49 %>
50
51 <!-- 取list指定位置的数据 -->
52 ${list[1].name}
53
54 <!-- 迭代List集合 -->
55 <c:forEach var="person" items="${list}">
56 ${person.name}
57 </c:forEach>
58 <hr>
59 <!-- 在jsp页面中,使用el表达式获取map集合的数据 -->
60 <%
61 Map<String,String> map = new LinkedHashMap<String,String>();
62 map.put("a","aaaaxxx");
63 map.put("b","bbbb");
64 map.put("c","cccc");
65 map.put("1","aaaa1111");
66 request.setAttribute("map",map);
67 %>
68
69 <!-- 根据关键字取map集合的数据 -->
70 ${map.c}
71 ${map["1"]}
72 <hr>
73 <!-- 迭代Map集合 -->
74 <c:forEach var="me" items="${map}">
75 ${me.key}=${me.value}<br/>
76 </c:forEach>
77 <hr>
78 </body>
79 </html>
运行效果如下:
1.2、执行运算
语法:${运算表达式},EL表达式支持如下运算符:
1、关系运算符
一、EL表达式简介
EL 全名为Expression Language。EL主要作用:
1、获取数据
EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)
2、执行运算
利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}
3、获取web开发常用对象
EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。
4、调用Java方法
EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。
1.1、获取数据
使用EL表达式获取数据语法:"${标识符}"
EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回””
(注意,不是null,而是空字符串)。
EL表达式可以很轻松获取JavaBean的属性,或获取数组、Collection、Map类型集合的数据
el表达式获取数据范例:
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
3 <%@page import="me.gacl.domain.Person"%>
4 <%@page import="me.gacl.domain.Address"%>
5 <!DOCTYPE HTML>
6 <html>
7 <head>
8 <title>el表达式获取数据</title>
9 </head>
10
11 <body>
12 <%
13 request.setAttribute("name","孤傲苍狼");
14 %>
15 <%--${name}等同于pageContext.findAttribute("name") --%>
16 使用EL表达式获取数据:${name}
17 <hr>
18 <!-- 在jsp页面中,使用el表达式可以获取bean的属性 -->
19 <%
20 Person p = new Person();
21 p.setAge(12);
22 request.setAttribute("person",p);
23 %>
24 使用el表达式可以获取bean的属性:${person.age}
25 <hr>
26 <!-- 在jsp页面中,使用el表达式可以获取bean中的。。。。。。。。。的属性 -->
27 <%
28 Person person = new Person();
29 Address address = new Address();
30 person.setAddress(address);
31
32 request.setAttribute("person",person);
33 %>
34 ${person.address.name}
35 <hr>
36 <!-- 在jsp页面中,使用el表达式获取list集合中指定位置的数据 -->
37 <%
38 Person p1 = new Person();
39 p1.setName("孤傲苍狼");
40
41 Person p2 = new Person();
42 p2.setName("白虎神皇");
43
44 List<Person> list = new ArrayList<Person>();
45 list.add(p1);
46 list.add(p2);
47
48 request.setAttribute("list",list);
49 %>
50
51 <!-- 取list指定位置的数据 -->
52 ${list[1].name}
53
54 <!-- 迭代List集合 -->
55 <c:forEach var="person" items="${list}">
56 ${person.name}
57 </c:forEach>
58 <hr>
59 <!-- 在jsp页面中,使用el表达式获取map集合的数据 -->
60 <%
61 Map<String,String> map = new LinkedHashMap<String,String>();
62 map.put("a","aaaaxxx");
63 map.put("b","bbbb");
64 map.put("c","cccc");
65 map.put("1","aaaa1111");
66 request.setAttribute("map",map);
67 %>
68
69 <!-- 根据关键字取map集合的数据 -->
70 ${map.c}
71 ${map["1"]}
72 <hr>
73 <!-- 迭代Map集合 -->
74 <c:forEach var="me" items="${map}">
75 ${me.key}=${me.value}<br/>
76 </c:forEach>
77 <hr>
78 </body>
79 </html>
运行效果如下:
1.2、执行运算
语法:${运算表达式},EL表达式支持如下运算符: