1.EL 概述:
EL 表达式可以嵌入再 JSP 页面内部, 减少 JSP 脚本的编写
EL 出现的目的是要替代 JSP 页面中脚本的编写
EL 最重要的作用就是从域中取出数据:
引入:
JSP 中 <%=request.getAttribute(name);%>
EL 只需这样写:${requestScope.name}
具体介绍:
创建一个 User 类:
- package domain;
- public class User {
- private int id;
- private String name;
- private String password;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- }
创建一个 JSP 文件做示例:
准备一些数据:
- <!-- 模拟域中的数据 -->
- <%
- pageContext.setAttribute("company", "Microsoft");
- // 存储字符串
- request.setAttribute("company", "Microsoft");
- // 存储一个对象
- User user = new User();
- user.setId(1);
- user.setName("zhangsan");
- user.setPassword("123");
- session.setAttribute("user", user);
- // 存储一个集合
- List<User> list = new ArrayList<User>();
- User user1 = new User();
- user1.setId(2);
- user1.setName("lisi");
- user1.setPassword("123");
- list.add(user1);
- User user2 = new User();
- user2.setId(3);
- user2.setName("wangwu");
- user2.setPassword("123");
- list.add(user2);
- application.setAttribute("list", list);
- %>
JSP 取出域中的值:
- <!-- JSP 取出域中的值 -->
- <%=request.getAttribute("company") %>
- <%
- User sessionUser = (User)session.getAttribute("user");
- out.write(sessionUser.getName());
- %>
EL 方式:
- <!-- 使用 EL 表达式获得域中的值 -->
- ${requestScope.company }
- ${sessionScope.user.name }
- ${applicationScope.list[1].name}
全域查找 (常用):
- <!-- 使用 el 表达式 全域查找 -->
- ${company }
- ${user.name }
- ${list[1].name}
全域查找顺序和 findAttribute 一样: pageContext->request->session->application
EL 内置对象:
这些都过时了, 实际开发不怎么使用
需要关注最后一个: 可以获得 requestresponse 等其他对象
示例:${pageContext.request.contextPath}
EL 执行表达式:
- <!-- el 可以执行表达式运算 -->
- ${1+1 }
- ${1==1?true:false }
- <!-- empty 判定某个对象是否是 null 是 null 返回 true -->
- ${empty list}
来源: http://www.bubuko.com/infodetail-2491539.html