EL技術

EL技術

EL(Express Lanuage)表達式能夠嵌入在jsp頁面內部,減小jsp腳本的編寫,EL出現的目的是要替代jsp頁面中腳本的編寫。html

EL從域中取出數據

EL最主要的做用是得到四大域中的數據,格式${EL表達式}java

  • EL得到pageContext域中的值:$(pageContextScope.key);
  • EL得到request域中的值:$(request.key);
  • EL得到session域中的值:$(session.key);
  • EL得到application域中的值:$(application.key);

EL從四個域中得到某個值$(key);

一樣是依次從pageContext域,request域,session域,application域中獲取屬性,在某個域中獲取後將不在向後尋找。cookie

示例:session

一、EL得到普通字符串app

二、EL得到User對象的值dom

三、EL得到List<String>的值jsp

四、EL得到List<User>的值ui

五、EL得到Map<String,String>的值spa

六、EL得到Map<String,User>的值code

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.itheima.domain.*" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <!-- 模擬域中的數據 -->
    <%
        pageContext.setAttribute("company", "阿里");
    
        //存儲字符串
        request.setAttribute("company", "企鵝");
    
        //存儲一個對象
        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);
        
    %>
    
    
    <!-- 腳本法是取出域中的值 -->
    <%=request.getAttribute("company") %>
    <%
        User sessionUser = (User)session.getAttribute("user");
        out.write(sessionUser.getName());
    %>
    <hr/>
    <!-- 使用EL表達式得到域中的值 -->
    ${requestScope.company }
    ${sessionScope.user.name }
    ${applicationScope.list[1].name}
    
    <!-- 使用el表達式 全域查找 -->
    ${company }
    ${user.name }
    ${list[1].name}
    
    <!-- el能夠執行表達式運算 -->
    ${1+1 }
    ${1==1?true:false }
    <!-- empty 斷定某個對象是不是null  是null返回true -->
    ${empty list}
    
    
</body>
</html>

EL的內置對象(九個)

pageScope,requestScope,sessionScope,applicationScope;

獲取JSP中域中的數據

接收參數:param,paramValues;

獲取請求頭信息:header,headerValues;

獲取全局初始化參數:initParam;

WEB開發中cookie:cookie;

WEB開發中的pageContext:pageContext;

例子:

複製代碼
<!-- 得到表單的參數 -->
    <%
        request.getParameter("username"); %> <!-- 使用el得到參數 --> ${param.username } ${header["User-Agent"] } ${initParam.aaa } ${cookie.name.value } 
${cookie.abc.value }
<!-- 經過el表達式得到request對象 --> 
${pageContext.request }
與${requestScope}不一樣,對象不只包含域,並且還有其餘數據和方法
<!--得到WEB應用的名稱-->
$(pageContext.request.contextPath)至關於<%=pageContext.getRequest().getContextPath%>
複製代碼
相關文章
相關標籤/搜索