一、EL技术
1.EL 表达式概述
EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中脚本的编写。
2.EL从域中取出数据(EL最重要的作用)
EL最主要的作用是获得四大域中的数据,格式${EL表达式}
EL获得pageContext域中的值:${pageContextScope.key};
EL获得request域中的值:${requestScope.key};
EL获得session域中的值:${sessionScope.key};
EL获得application域中的值:${applicationScope.key};
EL从四个域中获得某个值${key};
---依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找
示例:
1)EL获得普通字符串
2)EL获得User对象的值
3)EL获得List<User>的值
代码:
el.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ page import="domain.*"%> 4 <%@ page import="java.util.*"%> 5 6 <!DOCTYPE html> 7 <html> 8 <head> 9 <meta charset="UTF-8"> 10 <title>Insert title here</title> 11 </head> 12 <body> 13 14 <% 15 //存储字符串 16 request.setAttribute("company", "黑马程序员"); 17 18 //存储一个对象 19 User user1 = new User(); 20 user1.setId("1"); 21 user1.setName("Zhangsan"); 22 user1.setPassword("123"); 23 session.setAttribute("user", user1); 24 25 //存储一个集合 26 List<User> list = new ArrayList<User>(); 27 User user2 = new User(); 28 user2.setId("2"); 29 user2.setName("lisi"); 30 user2.setPassword("123"); 31 list.add(user2); 32 User user3 = new User(); 33 user3.setId("3"); 34 user3.setName("wangwu"); 35 user3.setPassword("123"); 36 list.add(user3); 37 application.setAttribute("list", list); 38 %> 39 40 <!-- 脚本方式 获得域中的值--> 41 <%=request.getAttribute("company")%> 42 <% 43 User sessionUser = (User) session.getAttribute("user"); 44 out.write(sessionUser.getName()); 45 %> 46 47 <hr /> 48 <!-- 使用EL表达式获得域中的值--> 49 ${requestScope.company} 50 ${sessionScope.user.name} 51 ${applicationScope.list[1].name} 52 53 <!-- 使用el表达式 全域查找--> 54 ${company} 55 ${user.name} 56 ${list[1].name} 57 58 </body> 59 </html>
结果