1. 概念

Expression Language 表达式语言

2. 作用

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

3. 语法


${表达式}

4. 注意


jsp默认支持el表达式的。

忽略**el**表达式:

  1. 1. 设置`jsp``page`指令中:`isELIgnored="true"` 忽略当前`jsp`页面中所有的`el`表达式
  2. 1. `\${表达式} `:忽略当前这个`el`表达式


5. 🚩使用

5.1. 运算

  1. 1. 算数运算符: `+ - * / %`
  2. - 其中 `/ `可用 `div `代替
  3. - 其中 `% `可用 `mod `代替
  4. 2. 比较运算符: `> < >= <= == !=`


3. 逻辑运算符: &&(and) ||(or) !(not)
4. 空运算符: empty
功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0
${empty list}:判断字符串、集合、数组对象是否为null或者长度为0
${not empty str}:表示判断字符串、集合、数组对象是否不为null并且 长度>0

  1. <%
  2. String name="张三"
  3. request.setAttribute("name",name);
  4. %>
  5. ${empty name} //false
  6. ${not empty name} //true

5.2. 获取值

  1. 1. `el` 表达式只能从域对象中获取值



2. 语法:
1. ${域名称.键名}:从指定域中获取指定键的值
域名称:

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

举例:request域中存储了name=张三
获取:**${requestScope.name}**

2. ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。

3. 获取对象、List集合、Map集合的值
1. 对象:
${域名称.键名.属性名}

  1. - 本质上会去调用对象的getter方法
  1. /**
  2. * class user
  3. */
  4. //1.定义类
  5. public class user{
  6. private String name;
  7. private int age;
  8. private Date Birthday;
  9. //...set and get Method
  10. }
  11. /**
  12. * index.jsp
  13. */
  14. //2.定义对象,并存储
  15. <%
  16. User user=new User();
  17. user.setName("张三");
  18. user.setAge(23);
  19. user.setBirthday(new Date());
  20. request.setAttribute("u",user);
  21. %>
  22. //3.调用对象
  23. ${requestScope.u} //输出: @hashcode
  24. ${u.name} //输出: 张三
  25. ${u.Birthday.getYear}
  1. 2. `List` 集合:<br />** ${域名称.键名[索引]}**


  1. //1.定义List对象,并存储信息
  2. <%
  3. List list=new ArrayList();
  4. list.add("aaa");
  5. list.add("bbb");
  6. request.setAttribute("list",list);
  7. %>
  8. //2.调用对象
  9. ${list} //输出: [aaa,bbb]
  10. ${list[0]} //输出: aaa
  11. ${list[1]} //输出: bbb
  12. ${list[3]} //输出: 越界什么也不输出,也不报错
  1. 3. `Map` 集合:


${域名称.键名.key名称}
${域名称.键名[“key名称”]}

  1. //1.定义Map对象,并存储信息
  2. <%
  3. Map map=new HashMap(); //啥都能存
  4. map.put("gender","张三");
  5. map.put("user",user); //存刚才的类对象
  6. request.setAttribute("map",map);
  7. %>
  8. //2.调用对象
  9. ${map.gender} //输出: 张三
  10. ${map["gender"]} //输出: 张三
  11. ${map.user.getname} //输出: 张三

5.3. 隐式对象

el表达式中有11个隐式对象
pageContext
获取jsp其他八个内置对象
${pageContext.request.contextPath}:动态获取虚拟目录