SlideShare a Scribd company logo
Submit Search
Upload
Ch07 使用JSTL
Report
Justin Lin
Technology / Community Evangelist at Free lancer
Follow
•
0 likes
•
431 views
1
of
75
Ch07 使用JSTL
•
0 likes
•
431 views
Download Now
Download to read offline
Report
Technology
了解何謂JSTL • 使用JSTL核心標籤庫 • 使用JSTL格式標籤庫 • 使用JSTL XML標籤庫 • 使用JSTL函式標籤庫
Read more
Justin Lin
Technology / Community Evangelist at Free lancer
Follow
Recommended
Ch06 使用JSP
Justin Lin
532 views
•
86 slides
Ch08 自訂標籤
Justin Lin
382 views
•
54 slides
Ch05 Servlet進階API、過濾器與傾聽器
Justin Lin
504 views
•
70 slides
整合資料庫
Justin Lin
855 views
•
102 slides
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Justin Lin
6.1K views
•
36 slides
Ch02 撰寫與設定Servlet
Justin Lin
999 views
•
37 slides
More Related Content
What's hot
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Justin Lin
2.7K views
•
64 slides
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Justin Lin
1.8K views
•
55 slides
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Justin Lin
4.5K views
•
66 slides
Ch06 使用 JSP
Justin Lin
250 views
•
83 slides
Ch13 整合 Spring MVC/Security
Justin Lin
280 views
•
58 slides
Ch02 撰寫與設定 Servlet
Justin Lin
352 views
•
37 slides
What's hot
(20)
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Justin Lin
•
2.7K views
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Justin Lin
•
1.8K views
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Justin Lin
•
4.5K views
Ch06 使用 JSP
Justin Lin
•
250 views
Ch13 整合 Spring MVC/Security
Justin Lin
•
280 views
Ch02 撰寫與設定 Servlet
Justin Lin
•
352 views
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
•
204 views
Ch09 整合資料庫
Justin Lin
•
233 views
Ch08 自訂標籤
Justin Lin
•
133 views
Ch01 簡介Web應用程式
Justin Lin
•
1.7K views
Ch10 Web容器安全管理
Justin Lin
•
384 views
Ch03 請求與回應
Justin Lin
•
236 views
CH1. 簡介 Web 應用程式
Justin Lin
•
1.2K views
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSP
Justin Lin
•
3.2K views
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Justin Lin
•
3.4K views
Servlet & JSP 教學手冊第二版 - 課後練習解答
Justin Lin
•
4.9K views
Ch03 請求與回應
Justin Lin
•
653 views
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Justin Lin
•
2.5K views
Ch04 會話管理
Justin Lin
•
392 views
Ch07 使用 JSTL
Justin Lin
•
161 views
Similar to Ch07 使用JSTL
2011 JavaTwo JSF 2.0
Anthony Chen
899 views
•
41 slides
Selenium私房菜(新手入门教程)
bwgang
703 views
•
42 slides
Selenium私房菜(新手入门教程)
liqiang xu
425 views
•
42 slides
Lucene实践
晓锋 陈
655 views
•
29 slides
Oracle北大青鸟完全教程
yiditushe
925 views
•
267 slides
Mysql 培训-优化篇
sunmonth
1.7K views
•
91 slides
Similar to Ch07 使用JSTL
(20)
2011 JavaTwo JSF 2.0
Anthony Chen
•
899 views
Selenium私房菜(新手入门教程)
bwgang
•
703 views
Selenium私房菜(新手入门教程)
liqiang xu
•
425 views
Lucene实践
晓锋 陈
•
655 views
Oracle北大青鸟完全教程
yiditushe
•
925 views
Mysql 培训-优化篇
sunmonth
•
1.7K views
J2ee经典学习笔记
yiditushe
•
1.4K views
Elastic Stack 最新动态
Elasticsearch
•
1.4K views
Elastic stack day-1
YI-CHING WU
•
1K views
Itpub电子杂志第四期第二稿
yiditushe
•
1.7K views
elastic search分析与实践
williams2014
•
221 views
腾讯大讲堂48 数据库查询优化浅析
George Ang
•
223 views
Elasticsearch search engine_development_tips
YI-CHING WU
•
116 views
Java Tutorial:Learn Java in 06:00:00
Justin Lin
•
27.5K views
Internet Explorer相容性設計考量
Bill Lin
•
1.7K views
Struts学习笔记
yiditushe
•
674 views
Jetty服务器架构及调优.v2 2011-5
lovingprince58
•
7.6K views
中远公司 Java培训资料
yiditushe
•
132 views
03.wls depoly jdbc
Meng He
•
308 views
Struts+Spring+Hibernate整合教程
yiditushe
•
279 views
More from Justin Lin
Ch14 簡介 Spring Boot
Justin Lin
872 views
•
22 slides
Ch12 Spring 起步走
Justin Lin
272 views
•
31 slides
Ch11 簡介 JavaMail
Justin Lin
157 views
•
8 slides
Ch10 Web 容器安全管理
Justin Lin
153 views
•
30 slides
Ch04 會話管理
Justin Lin
238 views
•
30 slides
14. 進階主題
Justin Lin
403 views
•
86 slides
More from Justin Lin
(20)
Ch14 簡介 Spring Boot
Justin Lin
•
872 views
Ch12 Spring 起步走
Justin Lin
•
272 views
Ch11 簡介 JavaMail
Justin Lin
•
157 views
Ch10 Web 容器安全管理
Justin Lin
•
153 views
Ch04 會話管理
Justin Lin
•
238 views
14. 進階主題
Justin Lin
•
403 views
13.並行、平行與非同步
Justin Lin
•
236 views
12. 除錯、測試與效能
Justin Lin
•
152 views
11. 常用內建模組
Justin Lin
•
146 views
10. 資料永續與交換
Justin Lin
•
156 views
9. 資料結構
Justin Lin
•
292 views
8. open() 與 io 模組
Justin Lin
•
245 views
7. 例外處理
Justin Lin
•
115 views
6. 類別的繼承
Justin Lin
•
166 views
5. 從模組到類別
Justin Lin
•
169 views
4. 流程語法與函式
Justin Lin
•
188 views
3.型態與運算子
Justin Lin
•
199 views
1. Python起步走
Justin Lin
•
661 views
2. 從 REPL 到 IDE
Justin Lin
•
234 views
Python 3.9 技術手冊目錄
Justin Lin
•
579 views
Ch07 使用JSTL
1.
1
2.
7 • 使用JSTL 學習目標 • 了解何謂JSTL •
使用JSTL核心標籤庫 • 使用JSTL格式標籤庫 • 使用JSTL XML標籤庫 • 使用JSTL函式標籤庫 2
3.
簡介JSTL • 核心標籤庫 • I18N相容格式標籤庫 •
SQL標籤庫 • XML標籤庫 • 函式標籤庫 3
4.
簡介JSTL • JSTL原始碼 – www.oracle.com/technetwork/java/index-jsp- 135995.html –
https://jstl.dev.java.net/ • API文件說明 – docs.oracle.com/cd/E17802_01/products/products/js p/jstl/1.1/docs/tlddocs/ 4
5.
簡介JSTL • Servlet 2.4
以上支援JSTL 1.1 – jstl.jar – standard.jar • Servlet 2.5 以上支援JSTL 1.2 – taglibs-standard-spec-1.2.5.jar – taglibs-standard-impl-1.2.5.jar 5
6.
簡介JSTL • taglib指示元素定義前置名稱與uri參考 – 使用核心標籤庫 •
JSTL 1.0要於web.xml中設定TLD檔案 • JSTL 1.0的uri也不同 6
7.
流程處理標籤 7
8.
8
9.
9
10.
10
11.
流程處理標籤 • <c:forEach>標籤的items屬性 – 可以是陣列、Collection、Iterator、 Enumeration、Map與字串 •
如果items指定的是Map,則設定給var的 物件會是Map.Entry – getKey()與getValue()方法 11
12.
流程處理標籤 • 如果items指定的是字串 12
13.
錯誤處理標籤 13
14.
網頁匯入標籤 • include指示元素是轉譯時期含括 • <jsp:include>是執行時期動態含括 14
15.
網頁匯入標籤 • <c:import>標籤可視為<jsp:include> 加強版 • 還可以匯入非目前Web應用程式中的網頁 15
16.
重新導向標籤 • 不用撰寫Scriptlet來使用sendRedirect() 16
17.
URI重寫標籤 • 如果不想使用Scriptlet撰寫response的 encodeURL()方法來作URI重寫 17
18.
URI重寫標籤 • 如果需要在URI上攜帶參數 18
19.
屬性處理標籤 19
20.
屬性處理標籤 • <c:set>標籤也可以將value的設定改為本體的方 式 • 不設定scope時,則會以page、request、 session、application的範圍尋找屬性名稱 •
所有範圍都沒有找到屬性名稱,則會在page範圍中 新增屬性 20
21.
屬性處理標籤 • 移除某個屬性,可以使用<c:remove>標籤 21
22.
屬性處理標籤 • <c:set>也可以用來設定JavaBean的屬性或 是Map物件的鍵/值,必須使用target屬性 進行設定 – 若${user}運算出來的結果是個JavaBean,則 上例就如同呼叫setName()並將請求參數name 的值傳入 –
若${user}運算出來的結果是個Map,則上例就 是以property屬性作為鍵,而value屬性作為 值來呼叫Map物件的put()方法 22
23.
23
24.
輸出標籤 • 會自動將角括號、單引號、雙引號等字元用 替代字元取代 • 由<c:out>的escapeXml屬性來控制,預 設是true 24
25.
輸出標籤 25
26.
I18N相容格式標籤庫 • 應用程式根據不同國家的使用者,呈現不同 的語言、數字格式、日期格式等,這稱之為 本地化(Localization) • 根據不同的使用者直接採用不同的語言、數 字格式、日期格式等,這樣的設計考量稱為 國際化(internationalization),簡稱i18n 26
27.
I18N基礎 27
28.
I18N基礎 • 如果你的文字編譯器是使用UTF-8編碼 28
29.
I18N基礎 • messages.properties 29
30.
I18N基礎 • 地區(Locale)資訊 • 資源包(Resource
bundle) • 基礎名稱(Base name) 30
31.
地區(Locale)資訊 • 代表了特定的地理、政治或文化區 • 可由一個語言編碥(Language
code)與可選的地區 編碼(Country code)來指定 • 語言編碼是ISO-639定義 – 例如“fr”表示法文(French),“zh”表示中文(Chinese) • 地區編碼則定義在ISO-3166 – 例如IT表示義大利(Italy)、TW表示台灣(Taiwan) 31
32.
地區(Locale)資訊 • 地區(Locale)資訊的對應類別Locale 32
33.
資源包(Resource bundle) • 包括了特定地區的相關資訊 •
ResourceBundle物件,就是JVM中資源包 的代表物件 33
34.
基礎名稱(Base name) • 代表同一組訊息但不同地區的各個資源包共 用相同的基礎名稱 •
使用ResourceBundle的getBundle()時 指定的名稱,就是在指定基礎名稱 – 若指定“messages”,預設的Locale代表zh_TW, 則會嘗試取得messages_zh_TW.properties檔案中 的訊息 – 若找不到,再嘗試找messages.properties檔案中的 訊息 34
35.
native2ascii 35
36.
ResourceBundle • ResourceBundle的getBundle()可以指 定Locale物件 36
37.
訊息標籤 • 慣例上使用i18n相容格式標籤庫時,會使用 fmt作為前置名稱 37
38.
• messages1.properties 38
39.
• messages2.properties 39
40.
40
41.
• messages3.properties 41
42.
地區標籤 • 使用ResourceBundle時如何根據基礎名稱 取得對應的訊息檔案 – 使用指定的Locale物件取得訊息檔案 –
使用Locale.getDefault()取得的物件取得 訊息檔案 – 使用基礎名稱取得訊息檔案 42
43.
地區標籤 • JSTL的i18n相容性標籤決定訊息檔案順序: – 使用指定的Locale物件取得訊息檔案 –
根據瀏覽器Accept-Language標頭指定的偏好地區 (Prefered locale)順序,這可以使用 HttpServletRequest的getLocales()來取 得 – 根據後備地區(fallback locale)資訊取得訊息檔 案 – 使用基礎名稱取得訊息檔案 43
44.
• <fmt:message>標籤有個bundle屬性,可 用以指定LocalizationContext物件 地區標籤 44
45.
45
46.
46
47.
地區標籤 • 如果要共用Locale資訊,則可以使用 <fmt:setLocale>標籤 47
48.
地區標籤 • <fmt:setLocale>會呼叫 HttpServletResponse的setLocale()設定回 應編碼 • <fmt:bundle>、<fmt:setBundle>或 <fmt:message>也會呼叫 HttpServletResponse的setLocale()設定回 應編碼 •
在Servlet規範中,如果使用了 setCharacterEncoding()或 setContentType()時指定了charset,則 setLocale()就會被忽略 48
49.
地區標籤 • <fmt:requestEncoding>用來設定請求 物件的編碼處理 • 會呼叫HttpServletRequest的 setCharacterEncoding() •
必須在取得任何請求參數之前使用 49
50.
格式標籤 • 針對數字、日期與時間,搭配地區設定或指 定的格式進行格式化 • 也可以進行數字、日期與時間的剖析 50
51.
51
52.
52
53.
53
54.
54
55.
XPath路徑表示 • 尋找XML文件中特定資訊的語言 • 使用路徑表示來定義XML文件中的特定位置, 以取得想要的資訊 •
JSTL中搭配XPath路徑表示來進行相關操作 55
56.
常用XPath路徑表示 56
57.
57
58.
58
59.
XSTL基礎 • XSL轉換(T就是指Transformation) • 將XML文件轉換為另一份XML文件、HTML 或XHTML的語言 59
60.
60
61.
61
62.
XML標籤庫 • 使用JSTL的XML標籤庫 62
63.
剖析XML文件 63
64.
取得XML資訊輸出 64
65.
取得XML資訊設定 • <x:set>預設將取得的結果儲存至page屬 性範圍 • 可以使用scope來指定為其它屬性範圍 65
66.
流程處理標籤 66
67.
67
68.
文件轉換標籤 • 已經定義好XSLT文件,則可以使用 <x:transform>、<x:param>直接進行 XML文件轉換 68
69.
bookmarksTable.xsl 69
70.
bookmarksBulletin.xsl 70
71.
71
72.
函式標籤庫 72
73.
73
74.
函式標籤庫 • 改變字串大小寫:toLowerCase、toUpperCase • 取得子字串:substring、substringAfter、 substringBefore •
裁剪字串前後空白:trim • 字串取代:replace • 檢查是否包括子字串:startsWith、endsWith、 contains、containsIgnoreCase • 檢查子字串位置:indexOf • 切割字串為字串陣列:split • 連接字串陣列為字串:join • 替換XML字元:escapeXML 74
75.
綜合練習/微網誌 • register.jsp、member.jsp與user.jsp頁面中的呈 現邏輯,還是使用Scriptlet來實作。在這一節 的綜合練習中,將使用JSTL來取代Scriptlet 75