JSTL表示式與EL表示式
一、什麼是 EL 語言。
表示式語言(EL)是 JSP 2.0 引入的一種計算和輸出 Java 物件的簡單語音。
二、EL 語言的作用。
為了使JSP寫起來更加簡單。表示式語言的靈感來自於ECMAScript和XPath表示式語言,它提供了在JSP中簡化表示式的方法。它是一種簡單的語言,基於可用的名稱空間(PageContext 屬性)、巢狀屬性和對集合、操作符(算術型、關係型和邏輯型)的訪問符、對映到 Java 類中靜態方法的可擴充套件函式以及一組隱式物件。
三、使用 EL 語言前的配置。
1、匯入standard.jar。
2、在需要使用 EL 語言的頁面加上<%@ page isELIgnored="false" %>
注意 <%@ page isELIgnored=”true” %> 表示是否禁用EL語言,TRUE表示禁止.FALSE表示不禁止.JSP2.0預設的啟用EL語言。
3、對於整個JSP應用程式,要修改WEB.XML配置(tomcat5.0.16預設是支援EL的)
<jsp-property-group>
<description> For config the ICW sample application </description>
<display-name>JSPConfiguration </display-name >
<url-pattern>/jsp/datareset.jsp </url-pattern>
<el-ignored>true< / el-ignored> < / el-ignored>
<page-encoding>UTF-8</page-encoding>
<scripting-invalid>true</scripting-invalid>
<include-prelude>/jsp/prelude.jspf</include-prelude >
<include-coda>/jsp/coda.jspf</include-coda>
</jsp-property-group>
四、如何使用 EL 表示式。
1、EL 的內建物件。
首先我們要知道 EL 的內建物件有pageScope
、requestScope
、sessionScope
、applicationScope
,如果未指定scope
,預設從 pageScope
到 applicationScope
查詢屬性名,也可以使用 xxxScope.屬性名
直接指定在某個 scope
查詢,如:
${ requestScope.tom }
2、語法結構。
${expression}
3、[ ]與.運算子。
EL 提供.
和[]
兩種運算子來存取資料。
如:
${student.name}
${studentList[0].name}
當要存取的屬性名稱中包含一些特殊字元,如.或?等並非字母或數字的符號,就一定要使用[ ]
。如:
${ student.My-Name} <!-- ${ student.My-Name} 寫法不正確,應該改為下面這種 -->
${ student["My-Name"] }
如果要動態取值時,就可以用[ ]
來做,而.
無法做到動態取值。如:
${ sessionScope.student[property] } <!-- 其中 property 是一個變數,動態取物件的屬性,如"id", "name"等等 -->
4、使用 EL 取出內建物件的資料。
(1)、普通物件和物件屬性。
伺服器端:
request.setAttribute("student", student);
在瀏覽器上打印出伺服器端繫結的資料:
${ student } <!-- 相當於執行了 student.toString(); -->
${ student.name } <!-- 相當於執行了 student.getName(); -->
${ student.teacher.name } <!-- 相當於執行了 student.getTeacher().getName(); -->
(2)、陣列中的資料。
伺服器端:
String[] nameArray = new String[]{"Tom", "Lucy", "Lilei"};
request.setAttribute(“nameArray”,nameArray);
Student[] students = new Student[3];
students[0] = stu1;
students[1] = stu2;
students[2] = stu3;
request.setAttribute(“students”,students);
在瀏覽器上打印出伺服器端繫結的陣列資料:
${ nameArray[0] } <!-- Tom -->
${ nameArray[1] } <!-- Lucy -->
${ nameArray[2] } <!-- Lilei -->
${ students[0].id } <!-- 輸出第一個學生的ID -->
${ students[1].name } <!-- 輸出第二個學生的name -->
${ students[2].teacher.name } <!-- 輸出第三個學生的老師的name -->
(3)、List中的資料。
伺服器端:
List<Student> studentList=new ArrayList<Student>();
studentList.add(stu1);
studentList.add(stu2);
studentList.add(stu3);
request.setAttribute(“studentList”,studentList);
在瀏覽器上打印出伺服器端繫結的List資料:
${ studentList[0].id } <!-- 輸出第一個學生的ID -->
${ studentList[1].name } <!-- 輸出第二個學生的name -->
${ studentList[2].teacher.name } <!-- 輸出第三個學生的老師的name -->
(4)、Map中的資料。
伺服器端:
Map<String, Student> studentMap = new HashMap<String, Student>();
studentMap.put("Tom", stu1);
studentMap.put("Lucy", stu2);
studentMap.put("Lilei", stu3);
request.setAttribute(“studentMap”,studentMap);
在瀏覽器上打印出伺服器端繫結的Map資料:
${ studentMap.Tom.id } <!-- 輸出第一個學生的ID -->
${ studentMap.Lucy.name } <!-- 輸出第二個學生的name -->
${ studentMap.Lilei.teacher.name } <!-- 輸出第三個學生的老師的name -->
5、使用 EL 取出隱式物件中的資料。
JSP 表示式語言定義了一組隱式物件,其中許多物件在 JSP scriplet
和表示式中可用。可使用的隱式物件如下:
隱式物件 | 作用 |
---|---|
page Context |
JSP 頁的上下文 |
page |
Context JSP 頁的上下文。它可以用於訪問 JSP 隱式物件 |
param |
將請求引數名稱對映到單個字串引數值 |
paramValues |
將請求引數名稱對映到一個數值陣列 |
header |
將請求頭名稱對映到單個字串頭值 |
headerValues |
將請求頭名稱對映到一個數值陣列 |
cookie |
將 cookie 名稱對映到單個cookie 物件 |
initParam |
將上下文初始化引數名稱對映到單個值 |
pageScope |
將頁面範圍的變數名稱對映到其值 |
requestScope |
將請求範圍的變數名稱對映到其值 |
sessionScope |
將會話範圍的變數名稱對映到其值 |
applicationScope |
將應用程式範圍的變數名稱對映到其值 |
五、EL 操作符
JSP 表示式語言提供以下操作符,其中大部分是 Java 中常用的操作符:
術語 | 定義 |
---|---|
算術型 | + 、- (二元)、* 、/ 、div 、% 、mod 、- (一元) |
邏輯型 | and 、&& 、or 、` |
關係型 | == 、eq 、!= 、ne 、gt 、<= 、le 、>= 、ge 。可以與其他值進行比較,或與布林型、字串型、整型或浮點型文字進行比較。 |
空 | empty 。空操作符是字首操作,可用於確定值是否為空。 |
條件型 | A ?B :C 。根據 A 賦值的結果來賦值 B 或 C 。 |
六、什麼是 JSTL 表示式。
JSP 標準標記庫(JSP Standard Tag Library,JSTL)是一個實現 Web 應用程式中常見的通用功能的定製標記庫集,這些功能包括迭代和條件判斷、資料管理格式化、XML 操作以及資料庫訪問。
七、JSTL 表示式的作用。
JSTL標籤庫的使用是為類彌補html表的不足,規範自定義標籤的使用而誕生的。在告別modle1模式開發應用程式後,人們開始注重軟體的分層設計,不希望在jsp頁面中出現java邏輯程式碼,同時也由於自定義標籤的開發難度較大和不利於技術標準化產生了自定義標籤庫。JSTL標籤庫可分為5類:
- 核心標籤庫
- I18N格式化標籤庫
- SQL標籤庫
- XML標籤庫
- 函式標籤庫
八、JSTL 表示式在頁面的配置。
1、匯入standard.jar
和jstl.jar
。
2、在JSP頁面上引入 JSTL 的引用。如:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
九、JSTL 的使用。
1、核心標籤庫
JSTL的核心標籤庫標籤共13個,從功能上可以分為4類:表示式控制標籤、流程控制標籤、迴圈標籤、URL操作標籤。使用這些標籤能夠完成JSP頁面的基本功能,減少編碼工作。如:
表示式控制標籤:out
標籤、set
標籤、remove
標籤、catch
標籤。
流程控制標籤:if
標籤、choose
標籤、when
標籤、otherwise
標籤。
迴圈標籤:forEach
標籤、forTokens
標籤。
URL操作標籤:import
標籤、url
標籤、redirect
標籤。
1.1、表示式控制標籤。
(1)、<c:out>
標籤:用來顯示資料物件(字串、表示式)的內容或結果。相當於 <% out.println(“字串”)%>
或 <%=表示式%>
。
語法如下:
[語法1]:
<c:out value=”要顯示的資料物件” [escapeXml=”true|false”] [default=”預設值”]>
[語法2]:
<c:out value=”要顯示的資料物件” [escapeXml=”true|false”]>預設值</c:out>
其中,
value
:指定要輸出的變數或表示式。
escapeXml
:設定是否轉換特殊字元。
default
:為預設輸出結果。如果使用表示式得到的結果為null(注意與空區別),將會輸出預設結果。
(2)、<c:set>
標籤:主要用於將變數存取於JSP範圍中或JavaBean屬性中。
[語法1]:
<c:set value="值1" var="name1" [scope="page|request|session|application"]>
把一個值放在指定(page
、session
等)的map
中。
[語法2]:
<c:set var=”name2” [scope=”page|request|session|application”]>
把一個變數名為name2
的變數儲存在指定的scope
範圍內。
[語法3]:
<c:set value=”值3” target=”JavaBean物件” property=”屬性名”/>
把一個值為“值3”賦值給指定的JavaBean
的屬性名。相當與setter()
方法。
[語法4]:
<c:set target=”JavaBean物件” property=”屬性名”>值4</c:set>
把一個值4賦值給指定的JavaBean的屬性名。
(3)、<c:remove>
標籤:主要用來從指定的JSP範圍內移除指定的變數。
[語法]:
<c:remove var=”變數名” [scope=”page|request|session|application”]/>
其中var
屬性是必須的,scope
可以以省略。
(4)、<c:catch>
標籤:用來處理JSP頁面中產生的異常,並將異常資訊儲存。
[語法]:
<c:catch var=”name1”>容易產生異常的程式碼</c:catch>
var
表示由使用者定義存取異常資訊的變數的名稱。省略後也可以實現異常的捕獲,當就不能顯示的輸出異常資訊。
1.2、流程控制標籤。
流程控制標籤主要用於對頁面簡單業務邏輯進行控制。流程控制標籤包含有4個:<c:if>
標籤、<c:choose>
標籤、<c:when>
標籤和<c:otherwise>
標籤。下面將介紹這些標籤的功能和使用方式。
(1)、<c:if>
標籤:同程式中的if
作用相同,用來實現條件控制。
[語法1]:
<c:if test=”條件1” var=”name” [scope=”page|request|session|application”]>
[語法2]:
<c:if test=”條件2” var=”name” [scope=”page|request|session|application”]>結果2</c:if>
[引數說明]:
I、test
屬性用於存放判斷的條件,一般使用EL表示式來編寫。
II、var
指定名稱用來存放判斷的結果型別為true
或false
。
III、scope
用來存放var
屬性存放的範圍。
(2)、<c:choose>
、<c:when>
和<c:otherwise>
標籤:這3個標籤通常情況下是一起使用的,<c:choose>
標籤作為<c:when>
和<c:otherwise>
標籤的父標籤來使用。
[語法1]:3個標籤的巢狀使用方式,<c:choose>
標籤只能和<c:when>
標籤共同使用。如:
<c:choose>
<c:when test="條件1">
…..//業務邏輯1
</c:when>
<c:when test="條件2">
…..//業務邏輯2
</c:when>
<span style="white-space: pre;"> </span><c:otherwise>
…..//業務邏輯3
</c:otherwise>
</c:choose>
[語法2]:<c:when>
標籤的使用方式,該標籤都條件進行判斷,一般情況下和<c:choose>
共同使用。如:
<c:when text=”條件”>
表示式
</c:when>
[語法3]:<c:otherwise>
不含有引數,只能跟<c:when>
共同使用,並且在巢狀中只允許出現一次。如:
<c:otherwise>
表示式
</c:otherwise>
1.3、迴圈標籤。
迴圈標籤主要實現迭代操作。主要包含兩個標籤:<c:forEach>
和<c:forTokens>
標籤,接下來將詳細介紹這兩個標籤的用法。
(1)、標籤:該標籤根據迴圈條件遍歷集合(Collection)中的元素。
[語法]:
<c:forEach var=”name” items=”Collection” varStatus=”StatusName” begin=”begin” end=”end” step=”step”>
所有內容
</c:forEach>
[引數解析]:
I、var
設定變數名用於儲存從集合中取出元素。
I、items
指定要遍歷的集合。
III、varStatus
設定變數名,該變數用於存放集合中元素的資訊。
IV、begin
、end
用於指定遍歷的起始位置和終止位置(可選)。
V、step
指定迴圈的步長。
[迴圈標籤屬性說明]:
名稱 | EL | 型別 | 是否必須 | 預設值 |
---|---|---|---|---|
var |
N | String |
是 | 無 |
items |
Y | Arrays``Collection``Iterator``Enumeration``Map``String []args |
是 | 無 |
begin |
Y | int |
否 | 0 |
end |
Y | int |
否 | 集合中最後一個元素 |
step |
Y | int |
否 | 1 |
varStatus |
N | String |
否 | 無 |
其中varStatus有4個狀態屬性,如下:
屬性名 | 型別 | 說明 |
---|---|---|
index |
int |
當前迴圈的索引值 |
count |
int |
迴圈的次數 |
frist |
boolean |
是否為第一個位置 |
last |
boolean |
是否為第二個位置 |
(2)、標籤:該標籤用於瀏覽字串,並根據指定的字元將字串擷取。
[語法]:
<c:forTokens items=”strigOfTokens” delims=””delimiters [var=”name” begin=”begin” end=”end” step=”len” varStatus=”statusName”] >
[引數說明]
I、items
指定被迭代的字串。
II、delims
指定使用的分隔符。
III、var
指定用來存放遍歷到的成員。
IV、begin
指定遍歷的開始位置(int
型從取值0開始)。
V、end
指定遍歷結束的位置(int
型,預設集合中最後一個元素)。
VI、step
遍歷的步長(大於0的整型)。
VII、varStatus
存放遍歷到的成員的狀態資訊。
注:<c:forToken>
的屬性varStatus
的使用同<c:forEach>
的使用方法相同,在此就再不表述。
1.4、URL操作標籤。
JSTL包含3個與URL操作有關的標籤,分別為:<c:import>
、<c:redirect>
和<c:url>
標籤。它們的作用為:顯示其他檔案的內容、網頁導向、產生URL。下面將詳細介紹這3個標籤的使用方法。
(1)、<c:import>
標籤:該標籤可以把其他靜態或動態檔案包含到本JSP頁面。同<jsp:include>
的區別為:只能包含同一個web應用中的檔案。而<c:import>
可以包含其他web應用中的檔案,甚至是網路上的資源。
[語法1]:
<c:import url=”url” [context=”context”][ value=”value”][scope=”page|request|session|application”] [charEncoding=”encoding”]>
[語法2]:
<c:import url=”url” varReader=”name” [context=”context”][charEncoding=”encoding”]>
標籤引數說明。
名稱 | 說明 | EL | 型別 | 必須 | 預設值 |
---|---|---|---|---|---|
url |
被匯入資源的URL路徑 | Y | String |
是 | 無 |
context |
相同伺服器下其他的web工程,必須以“””開頭 | Y | String |
否 | 無 |
var |
以String型別存入被包含檔案的內容。 | N | String |
否 | 無 |
Scope |
var變數的JSP範圍 | N | String |
否 | page |
charEncoding |
被匯入檔案的編碼格式 | Y | String |
否 | 無 |
varReader |
以Reader型別儲存被包含檔案內容 | N | String |
否 | 無 |
[引數說明]:
I、URL為資源的路徑,當應用的資源不存在時系統會丟擲異常,因此該語句應該放在<c:catch></c:catch>
語句塊中捕獲。應用資源有兩種方式:絕對路徑和相對路徑。使用絕對路徑示例如下:
<c:import url=”http://www.baidu.com”>
使用相對路徑的例項如下:
<c:import url=”aa.txt”>
aa.txt放在同一檔案目錄。
如果以“/”開頭表示應用的根目錄下。例如:tomcat應用程式的根目錄資料夾為webapps。匯入webapps下的檔案bb.txt的編寫方式為:
<c:import url=”/bb.txt”>
如果訪問webapps管理資料夾中其他web應用就要用context屬性。
II、context屬性用於在訪問其他web應用的檔案時,指定根目錄。例如,訪問root下的index.jsp的實現程式碼為:
<c:import url=”/index.jsp” context=”/root”>
等同於webapps/root/index.jsp
III、var
屬性表示為資源起的別名。
IV、scope
屬性標識該資源訪問的範圍。
V、charEncoding
屬性標識該資源的編碼方式。
VI、varReader
這個引數的型別是Reader
,用於讀取資源。
(2)、<c:redirect>
標籤:用來實現了請求的重定向。同時可以在url中加入指定的引數。例如:對使用者輸入的使用者名稱和密碼進行驗證,如果驗證不成功重定向到登入頁面;或者實現web應用不同模組之間的銜接。
[語法1]:
<c:redirect url=”url” [context=”context”]>
[語法2]:
<c:redirect url=”url”[context=”context”]>
<c:param name=”name1” value=”value1”>
</c:redirect>
[引數說明]:
I、url
指定重定向頁面的地址,可以是一個string
型別的絕對地址或相對地址。
II、context
用於匯入其他web應用中的頁面。
(3)、<c:url>
標籤:該標籤用於動態生成一個String
型別的URL,可以同<c:redirect>
標籤共同使用,也可以使用html的標籤實現超連結。
[語法1]:指定一個url不做修改,可以選擇把該url儲存在JSP不同的範圍中。
<c:url value=”value” [var=”name”][scope=”page|request|session|application”][context=”context”]/>
[語法2]:給url加上指定引數及引數值,可以選擇以name儲存該url。
<c:url value=”value” [var=”name”][scope=”page|request|session|application”][context=”context”]>
<c:param name=”引數名” value=”值”>
</c:url>
2、I18N格式標籤庫
JSTL標籤提供了對國際化(I18N)的支援,它可以根據發出請求的客戶端地域的不同來顯示不同的語言。同時還提供了格式化資料和日期的方法。實現這些功能需要I18N格式標籤庫(I18N-capable formation tags liberary)。引入該標籤庫的方法為:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
I18N格式標籤庫提供了11個標籤,這些 標籤從功能上可以劃分為3類如下:
數字日期格式化。formatNumber
標籤、formatData
標籤、parseNumber
標籤、parseDate
標籤、timeZone
標籤、setTimeZone
標籤。
讀取訊息資源。bundle
標籤、message
標籤、setBundle
標籤。
國際化。setlocale
標籤、requestEncoding
標籤。
接下將詳細介紹這些標籤的功能和使用方式。
2.1、數字日期格式化標籤:數字日期格式化標籤共有6個,用來將數字或日期轉換成設定的格式。
[語法1]:
<frm:formatNumber value=”被格式化的資料”[type=”number|currency|percent”]
[pattern=”pattern”]
[currencyCode=”code”]
[currencySymbol=”symbol”]
[groupingUsed=”true|false”]
[maxIntergerDigits=”maxDigits”]
[minIntergerDigits=”minDigits”]
[maxFractionDigits=”maxDigits”]
[minFractionDigits=”minDigits”]
[var=”name”]
[scope=page|request|session|application]
/>
[語法2]:
<frm:formatNumber [type=”number|currency|percent”]
[pattern=”pattern”]
[currencyCode=”code”]
[currencySymbol=”symbol”]
[groupingUsed=”true|false”]
[maxIntergerDigits=”maxDigits”]
[minIntergerDigits=”minDigits”]
[maxFractionDigits=”maxDigits”]
[minFractionDigits=”minDigits”]
[var=”name”][scope=page|request|session|application]
/>
標籤引數說明:
名稱 | 說明 | EL | 型別 | 必須 | 預設值 |
---|---|---|---|---|---|
value |
要格式化的資料 | 是 | String |
是 | 無 |
type |
指定型別(單位、貨幣、百分比等)見表 | 是 | String |
否 | number |
pattern |
格式化的資料樣式 | 是 | String |
否 | 無 |
currencyCode |
貨幣單位程式碼 | 是 | String |
否 | 無 |
cuttencySymbol |
貨幣符號($、¥) | 是 | String |
否 | 無 |
groupingUsed |
是否對整數部分進行分組如(9,999) | 是 | boolean |
是 | true |
maxIntergerDigits |
整數部分最對顯示多少位數 | 是 | int |
否 | 無 |
minIntergerDigits |
整數部分最少顯示多少位 | 是 | int |
否 | 無 |
maxFractionDigits |
小數部分最多顯示多少位 | 是 | int |
否 | 無 |
minFractionDigits |
小數部分最少顯示多少位 | 是 | int |
否 | 無 |
var |
儲存格式化後的資料 | 否 | String |
否 | 無 |
scope |
var 的JSP範圍 |
否 | String |
否 | page |
Type
屬性的型別應用見表:
型別 | 說明 | 示例 |
---|---|---|
number |
數字格式 | 0.8 |
currency |
當地貨幣 | ¥0.80 |
percent |
百分比格式 | 80% |
2.2、<frm:parseNumber>
標籤:將格式化後的數字、貨幣、百分比都轉化為數字型別。
[語法1]:
<fmt:parseNumber value="number" [type=”number|currency|percent”]
[pattern=”pattern”]
[parseLocale=”locale”]
[intergerOnly=”true|false”]
[scope=page|request|session|application”]
/>
[語法2]:
<fmt:parseNumber [type=”number|currency|percent”]
[pattern=”pattern”]
[parseLocale=”locale”]
[intergerOnly=”true|false”]
[scope=”page|request|session|application”]>
Number
</fmt:parseNumber>
<fmt:parseNumber>
標籤引數說明:
名稱 | 說明 | EL | 型別 | 是否必須 | 預設值 |
---|---|---|---|---|---|
value |
被解析的字串 | 是 | String |
是 | 無 |
type |
指定單位(數字、貨幣、百分比) | 是 | String |
是 | number |
pattern |
格式樣式 | 是 | String |
否 | 無 |
parseLocale |
用來替代預設區域的設定 | 是 | String ,Java.util.``Locale |
是 | 預設本地樣式 |
var |
儲存已經格式化的資料 | 否 | String |
否 | 無 |
scope |
var 變數的作用域 |
否 | String |
是 | page |
<fmt:parseNumber>
可以看作是<fmt:formatNumber>
的逆運算。相應的引數和型別的配置和使用<fmt:formatNumber>
格式化時相同。
2.3、標籤:該標籤主要用來格式化日期和時間。
[語法]:
<fmt: formatDate value=”date” [type=”time|date|both”]
[pattern=”pattern”]
[dateStyle=”default|short|medium|long|full”]
[timeStyle=”default|short|medium|long|full”]
[timeZone=”timeZone”]
[var=”name”]
[scope=”page|request|session|application”]
/>
<fmt:formatDate>
標籤屬性說明:
屬性名 | 說明 | EL | 型別 | 必須 | 預設值 |
---|---|---|---|---|---|
value |
將要格式化的日期物件。 | 是 | Java.util.Date |
是 | 無 |
type |
顯示的部分(日期、時間或者兩者)。 | 是 | String |
否 | date |
partten |
格式化的樣式。 | 是 | String |
否 | 無 |
dateStyle |
設定日期的顯示方式。 | 是 | String |
否 | default |
timeStyle |
設定時間的顯示方式。 | 是 | String |
否 | default |
timeZone |
設定使用的時區。 | 是 | String |
否 | 當地所用時區 |
var |
儲存已格式化的日期或時間。 | 否 | String |
否 | 無 |
scope |
指定var儲存的JSP範圍。 | 否 | String |
否 | 無 |
其中type屬性引數說明見表:
引數名 | 說明 |
---|---|
time |
只顯示時間 |
date |
只顯示時期 |
both |
顯示日期和時間 |
2.4、<fmt:parseDate>
標籤:主要將字串型別的時間或日期轉化為時間或日期物件。
[語法1]:
<fmt:parseDate value=”date” [type=”time|date|both”]
[pattern=”pattern”]
[parseLocale=”locale”]
[dateStyle=”default|short|medium|long|full”]
[timeStyle=”default|short|medium|long|full”]
[timeZone=”timezone”]
[var=”name”]
[scope=”page|request|session|application”]
/>
[語法2]:
<fmt:parseDate [type=”time|date|both”]
[pattern=”pattern”]
[parseLocale=”locale”]
[dateStyle=”default|short|medium|long|full”]
[timeStyle=”default|short|medium|long|full”]
[timeZone=”timezone”]
[var=”name”]
[scope=”page|request|session|application”]>
Date
</fmt:parseDate>
<fmt:parseData>
標籤屬性說明:
屬性名 | 說明 | EL | 型別 | 必須 | 預設值 |
---|---|---|---|---|---|
value |
將要格式化的日期時間 | 是 | String |
是 | 無 |
type |
字串的型別(日期、時間或全部) | EL | String |
是 | date |
pattern |
字串使用的時間樣式 | 是 | String |
是 | 無 |
parseLocale |
取代預設地區設定 | 是 | String |
是 | 預設地區 |
dateStyle |
字串使用的日期顯示方式 | 是 | String |
否 | default |
timeStyle |
字串使用的時間顯示格式 | 是 | String |
否 | default |
timeZone |
使用的時區 | 是 | String |
否 | 當地區時 |
var |
使用var定義的名字儲存物件 | 否 | String |
否 | 無 |
scope |
var的JSP範圍 | 否 | String |
否 | page |
2.5、<fmt:setTimeZone>
標籤:該標籤用於設定預設時區或者將時區儲存在指定的JSP範圍內。
[語法]:
<fmt:timeZone value=”timeZone”>
…..
</fmt:timeZone>
使用<fmt:timeZone></fmt:timeZone>
只會應用到標籤體內使用的時區,對標籤外部將不產生影響。
相關推薦
JSTL標籤與EL表示式
之前經常在一些前端程式碼中會遇到JSTL標籤以及EL表示式,時常因此對整個頁面看得一知半解,這次突然想到進一步瞭解一下此二者,因此專門上網上找了一些文章進行閱讀,增進了解。 JSTL標籤與EL表示式 1、JSTL標籤 來源:部落格園 https://www.cnblogs.com/Fskjb
Java學習——JSTL標籤與EL表示式之間的微妙關係
很高興,今天能和大家分享剛學的一些新知識。我們在java開發過程中經常會在jsp中嵌入一些java程式碼,比如<%=request.getParameter("id")%>
JSTL表示式與EL表示式
一、什麼是 EL 語言。 表示式語言(EL)是 JSP 2.0 引入的一種計算和輸出 Java 物件的簡單語音。 二、EL 語言的作用。 為了使JSP寫起來更加簡單。表示式語言的靈感來自於ECMAScript和XPath表示式語言,它提供了在JSP中簡
JavaWeb學習筆記及案例(一)JSP與EL表示式和JSTL
1.JSP 1.1JSP的三大指令 page include taglib 指令的寫法 <%@ 指令名字 %> 1.1.1jsp的page指令 1.extends 用於指定jsp翻譯成java檔案後,繼承的父類是誰,一般不改 2.s
JSTL與EL表示式(為空判斷)
一、迴圈遍歷集合 3、如何使用jstl判斷集合是否為空 ${user}為集合,user為集合名 <c:if test="${empty user}">無資訊!</c:if&
JSTL與EL表示式
迴圈遍歷集合 1、在jsp中引入標準函式宣告<span style="font-size:14px;"><%@ taglib uri="http://java.sun.com/jsp
javaweb基礎整理隨筆------jstl與el表示式
雖然jsp中可以寫java程式碼,但是現在不推薦這麼做。 jsp雖然本質是servlet,但是主要作用只是檢視,檢視的任務就是顯示響應,而不是在JSP中做任何關於程式控制和業務邏輯的事情。所以在JSP頁面中應該儘可能少的、或者是完全不出現Java程式碼。 JSP標準動作中沒有提供這種巢狀式訪問機制,所以要想實
freemarker的基本標籤的使用與el表示式比較
${selectDto.stuName?ifExists}相當於el表示式的${selectDto.stuName} 設定單選框在selectDto.exact==1時選中 ${(selectDto.exact==1)?string("checked","")}相當於el表
Servlet之實現增刪改查操作與EL表示式
這個嘛...可以做很多變形,這裡的操作主要針對作用域屬性的值,實際應用中可以改為針對jdbc資料庫的操作。 先看看EL表示式 <%@ page language="java" import="java.util.*,test.lindl.bean.Dog" page
Struts標籤、Ognl表示式、el表示式、jstl標籤庫這四者之間的關係和各自作用
我之前雖然會用,但是一直分不清彼此之間有什麼區別,所以查詢資料,將它們進行整合區分,加深瞭解, 一 介紹 1.Struts2的作用 Struts2標籤庫提供了主題、模板支援,極大地簡化了檢視頁面的編寫,而且,struts2的主題、模板都提供了很好的擴充套件性。實現了更
JSP與EL表示式
EL表示式作用: 1.主要用於獲取資料物件或變數值 EL表示式主要用於替代JSP頁面的指令碼表示式(<%=expression%),以從各種型別的web域中檢索java物件 2.在JSP頁面執行一些基本關係
11月20日面試題分析與EL表示式培訓日記
今天新班開學典禮,我必須出席,所以,上午安排這個班的學員們練習昨天講解的SimpleFormController。一兩個學員瞞著我,外出找公司面試了幾把,最後問了我幾道令他們心虛的幾道面試題,下午我先為大家分析了這幾道面試題:1.在使用new關鍵字建立某個類的例項物件時,構造
jsp中jstl中的EL表示式不支援問題
問題所在:“value” dose not support runtime expressions 原因:匯入的jstl標籤有誤,注意匯入的是http://java.sun.com/jsp/jstl/core
JSTL標籤結合EL表示式——java web前端瘦身器
JSP Standard Tag Library 標準標籤庫: Model 1 開發模式採用jsp 內嵌java 程式碼的方式實現業務邏輯與前臺頁面的互動,這樣雖然使得前臺呼叫業務簡單,卻也
struts2值棧、struts2標籤、ONGL表示式、EL表示式、JSTL表示式、jsp標籤
1.struts2值棧: (1) ValueStack是Struts2的一個介面,字面意義為值棧,OgnlValueStack是 ValueStack的實現類,客 戶端發起一個請求,struts2架構會建立一個action例項同時建立一個OgnlValueStack值棧
中綴表示式與字尾表示式之間的互轉及求值
中綴表示式:常見的運算表示式,如(3+4)×5-6 字首表示式又稱波蘭式:運算子位於運算元之前,比如:- × + 3 4 5 6 字尾表示式又稱逆波蘭表示式:與字首表示式相似,只是運算子位於運算元之後,如:3 4 + 5 × 6 - 中綴表示式轉字尾表示式
struts2進階二---OGNL表示式與OGNL表示式在struts2中的運用
OGNL(物件檢視導航語言)表示式 (EL表示式就是) OGNL不僅僅可以檢視導航還支援比EL表示式更加豐富的功能 使用: 準備工作1:導包(struts包裡面已經有了) 準備工作2: ognl基本語法: 1:取值 取出root中的屬性值
【EL 表示式】EL 表示式中巢狀 EL 表示式
需求 需要從一個文章集合中根據不同的標籤取出文章,第一篇文章用第一個標籤,第二篇文章用第二個標籤 原有思路 <c:forEach items="${articles}" var="article" varStatus="ids"> <img
【資料結構】棧的應用---四則運算表示式求值(中綴表示式與字尾表示式轉換)
用計算機實現帶括號的四則運算的方式。 這裡的困難在於乘除運算的優先順序高於加減運算,並且加入了括號,使得問題變得更加困難。 20世紀50年代,波蘭邏輯學家想到了一種不需要括號的字尾表達法,我們也把它稱為逆波蘭表示。 比如:9+(3-1)*3+10/2,如果
Angularjs表示式與JavaScript表示式的區別
ng的表示式除了下面幾點之外非常類似於js表示式 執行環境。js表示式的執行環境是在全域性作用域中,即window物件。ng表示式的執行環境則是在一個scope物件中執行。Forgiving(報錯?):在js中嘗試給一個未宣告的屬性賦值會丟擲引用異常(ReferenceE