el和jstl概述

一、el表達式

1、概述:jsp的內置表達式語言,用來替代<%=..%>

${el表達式}

2、作用:

1)獲取數據

a、獲取簡單屬性

${屬性名}:依次從pageContext,request,session,application查找指定屬性,

若查找到返回值,結束該次查找,若查找不到,返回""

b、獲取複雜數據

獲取數組中的數據

${域中的名稱[index]}

獲取list中的數據

${域中的名稱[index]}

獲取map中的數據

${域中的名稱.鍵名}

c、獲取Javabean屬性值

${域中javabean名稱.bean屬性}

2)執行運算

a、四則運算

+:只能進行加法運算,字符串形式數字可以進行加法運算

b、關係邏輯運算符

b、empty

判斷一個容器的長度是否爲0(array set list map),還可以判斷一個對象是否爲空

${empty list}

c、取反 not empty

d、三元運算符

${ 3>4?"yes":"no" }

3、el的11個內置對象

PageContext 表示此JSP的PageContext

在jsp頁面中獲取項目名 ${pageContext.request.contextPath}

PageScope 取得Page範圍的屬性名稱所對應的值

RequestScope 取得Request範圍的屬性名稱所對應的值

sessionScope 取得Session範圍的屬性名稱所對應的值

applicationScope 取得Application範圍的屬性名稱所對應的值

param 如同ServletRequest.getParameter(String name)。回傳String類型的值

paramValues 如同ServletRequest.getParameterValues(String name)。回傳String[]類型的值

header 如同ServletRequest.getHeader(String name)。回傳String類型的值

headerValues 如同ServletRequest.getHeaders(String name)。回傳String[]類型的值

initParam 如同ServletContext.getInitParameter(String name)。回傳String類型的值

cookie 如同HttpServletRequest.getCookies()

java中Cookie的api

getName():獲取cookie的名稱

getValue():獲取cookie的value值

二、jstl表達式

1、概述:jsp標準的標籤庫語言,用來替代java腳本

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c/fmt/fn" %>

2、分類

1)core:核心類庫

a:c:if 判斷

<c:if test="${el表達式}">滿足的時候輸出的內容</c:if>

例如:判斷登錄

<c:if test="${not empty name }">

${name}歡迎你!

</c:if>

<c:if test="${empty name }">

你尚未登陸請重新登陸<a href="${pageContext.request.contextPath}/login.jsp">點擊登陸</a>

</c:if>

b:c:forEach 循環

格式1:

<c:forEach begin="從那裏開始" end="到那裏結束" step="步長" var="給變量起個名字" varStatus="循環狀態變量">

${i }--${vs.count }--${vs.current }<br>

//count:記錄次數 從1開始 current:當前遍歷的內容 index: 索引 從0開始

</c:forEach>

例: <c:forEach begin="1" end="20" step="2" var="i" varStatus="vs">

${i }--${vs.count }--${vs.current }<br>

</c:forEach>

格式2:

<c:forEach items="${el獲取域中的容器}" var="n">

${n}

</c:forEach>

例: <c:forEach items="${map}" var="en">

${en.key }-- ${en.value }<br/>

</c:forEach>

c:c:url 自動補項目路徑,自動url重寫

<a href='<c:url value="/foreach.jsp" />'>foreach.jsp</a>

相當於:<a href="${pageContext.request.contextPath}/foreach.jsp">foreach.jsp</a>

2)fmt:國際化

<fmt:formatDate value="要顯示的日期" type="DATE/TIME/BOTH" dateStyle="FULL/LONG/MEDIUM/SHORT/DEFAULT"

timeStyle="FULL/LONG/MEDIUM/SHORT/DEFAULT" pattern="自定義格式模式" timeZone="顯示日期的時區"

var="存儲格式化日期的變量名" scope="存儲格式化日誌變量的範圍" />

3)xml/sql:已過時

4)函數庫:

fn:contains(string,substring) 是否包含

fn:containsIgnorrCase(string,substring) 忽略大小寫

fn:endsWith(string,suffix) 是否以suffix結尾

fn:startsWith(string,prefix) 是否以prefix開頭

fn:substring(string,begin,end) 返回字串 以begin開始end結束

fn:substringAfter(string,substring)

fn:substringBefore(string,substring)

fn:toLowerCase(string) 變小寫

fn:toUpperCase(string) 變大寫

fn:trim(string) 去除首尾空格

fn:escapeXml(string) xml/html轉換

fn:indexOf(string,substring) 返回第一次出現的索引

fn:join(array,separator) 返回字串,用separator代替array裏的分隔符

fn:length(item) 返回長度

fn:replace(string,before,after) 替換

fn:split(string,separator) 以separator爲分隔符分割string 返回數組


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章