第一部分 Struts基礎.
第1章 引言 2
1.1 什么是Web應用程序
1.2 Struts可以做什么
1.3 關于讀者
1.4 如何閱讀此書 4
1.5 有用的鏈接 4
第2章 復習servlet和JSP 6
2.1 實驗2:安裝Tomcat 6
2.2 servlet容器基礎 8
2.3 重要的servlet類
2.4 JSP 10
2.4.1 解析Hello.jsp
2.4.2 最后的思考
2.5 有用的鏈接 13
2.6 小結 13
第3章 理解作用域 14
3.1 實驗3:作用域測驗 15
3.2 會話和請求作用域內幕 17
3.3 小結 17
第4章 定制標簽 18
4.1 定制標簽基礎 18
4.2 如何處理定制標簽 19
4.3 Java標簽處理器類 20
4.4 輔助類 22
4.5 TLD文件 23
4.6 實驗4:溫度轉換標簽 25
4.6.1 步驟1:準備開發(fā)環(huán)境和腳本 26
4.6.2 步驟2:編寫Java標簽處理器 26
4.6.3 步驟3:編寫標簽庫描述文件 26
4.6.4 步驟4:修改web.xml 27
4.6.5 步驟5:編寫JSP 27
4.6.6 步驟6:部署和測試 27
4.7 專業(yè)的Java工具 28
4.8 有用的鏈接 28
4.9 小結 28
第5章 MVC設計模式 29
5.1 注冊Web應用 31
5.1.1 需求1 31
5.1.2 需求2 32
5.1.3 需求3 32
5.1.4 需求4 32
5.1.5 需求5 34
5.2 實驗5:MVC測驗 35
5.3 從哪里入手 36
5.4 Struts和MVC 37
5.5 Struts請求的生命周期 38
5.6 針對模型的框架 39
5.7 有用的鏈接 40
5.8 小結 40
第6章 簡單驗證 41
6.1 處理簡單驗證 41
6.2 解剖ActionForm 41
6.3 使用ActionErrors 45
6.4 實驗6:LILLDEP的ContactForm 48
6.4.1 步驟1:準備開發(fā)環(huán)境和腳本 49
6.4.2 步驟2:實現ContactForm的獲取器和設置器 49
6.4.3 步驟3:實現validate() 50
6.4.4 步驟4:實現reset() 50
6.5 現在Struts已經做了什么 50
6.6 小結 51
第7章 處理業(yè)務邏輯 52
7.1 Action簡介 52
7.2 Action的無狀態(tài)性 53
7.3 子類化Action 54
7.4 注冊Web應用程序中的業(yè)務邏輯 54
7.5 復雜驗證 57
7.6 數據變換 58
7.7 導航 59
7.8 實驗7:為LILLDEP實現ContactAction 60
7.9 小結 61
第8章 基本Struts標簽 62
8.1 頁面處理生命周期 62
8.2 “注冊Web應用程序”的視圖組件 64
8.2.1 聲明和安裝HTML和Bean標簽庫 66
8.2.2 顯示靜態(tài)文本 66
8.2.3 表單和表單處理器 67
8.2.4 數據輸入標簽 68
8.2.5 顯示錯誤 69
8.3 HTML和Bean標簽庫概要 70
8.4 實驗8:為LILLDEP創(chuàng)建Contact輸入頁面 71
8.5 有用的鏈接 72
8.6 小結 72
第9章 配置Struts 73
9.1 struts-config.xml的結構 73
9.2 配置注冊Web應用程序 74
9.3 聲明表單bean 75
9.4 聲明全局異常 76
9.5 聲明全局轉發(fā) 77
9.6 聲明表單處理器 77
9.7 控制器聲明 79
9.8 消息資源 80
9.9 聲明插件 80
9.10 實驗9a:配置LILLDEP 81
9.11 代碼重用 82
9.12 實驗9b:MNC頁面 82
9.13 小結 83
第10章 其他標簽 84
10.1 最佳實踐 85
10.2 剩下的2+1個Struts標簽庫 85
10.3 Logi 標簽庫 85
10.3.1 迭代 86
10.3.2 簡單的. 嵌套的. 索引的. 映射的屬性 88
10.3.3 條件處理 89
10.3.4 流控制 90
10.4 Nested標簽庫 91
10.5 JSTL和Struts 93
10.5.1 表達語言(EL) 95
10.5.2 使用EL 95
10.5.3 <c:out>標簽 96
10.5.4 <c:forEach>標簽 97
10.5.5 <c:if>和<c:choose>...<c:when>標簽 98
10.6 StrutsEL擴展 99
10.7 實驗10a:LILLDEP的全部列表頁面 99
10.7.1 步驟1:完成ListingAction 100
10.7.2 步驟2:完成listing.jsp 100
10.7.3 步驟3:修改web.xml 100
10.7.4 步驟4:修改struts-config.xml 100
10.8 實驗10b:簡化ContactForm 101
10.8.1 步驟1:修改ContactForm 101
10.8.2 步驟2:修改full.jsp和mn .jsp 101
10.9 實驗10 :使用JSTL 101
10.9.1 步驟1:安裝JSTL和Struts EL標簽庫 101
10.9.2 步驟2:修改web.xml 101
10.9.3 步驟3:修改listing.jsp 102
10.10 有用的鏈接 102
10.11 小結 102
第11章 上傳文件 103
11.1 一次上傳固定數量的文件 104
11.2 上傳任意數量的文件 107
11.3 Lab 11:導入數據到LILLDEP中 114..
11.3.1 步驟1:完成ImportForm 114
11.3.2 步驟2:完成import.jsp 114
11.3.3 步驟3:完成ImportAction 114
11.3.4 步驟4:修改struts-config.xml 115
11.3.5 步驟5:編譯. 重新部署并測試應用 115
11.4 有用的鏈接 115
11.5 小結 115
第12章 國際化 116
12.1 字符編碼,140Unicode和UTF-8 116
12.2 場所(Locale) 118
12.3 處理輸入 119
12.4 本地化驗證 120
12.5 本地化輸出 122
12.5.1 處理翻譯后的Application.properties文件 123
12.5.2 從瀏覽器中選擇一個場所 123
12.5.3 通過一個鏈接切換場所 124
12.5.4 用LocaleAction來切換場所 125
12.6 實驗12:針對馬來西亞語市場的LILLDEP 125
12.7 有用的鏈接 126
12.8 小結 126
第13章 復習實驗:在LILLDEP中編輯聯系人信息 127
第二部分 高級Struts
第14章 Tiles 130
14.1 安裝Tiles 131
14.2 用Tiles 進行布局 132
14.3 Tiles 組件 137
14.4 實例:一個“登錄”Tiles組件 140
14.5 獲取外部表單數據 153
14.6 實驗14:查找功能 154
14.6.1 步驟1:設置Tiles 154
14.6.2 步驟2:編寫控制器 154
14.6.3 步驟3:設置Tiles ActionMapping 155
14.6.4 步驟4:修改Conta tAction 156
14.6.5 步驟5:編寫Tiles JSP 156
14.6.6 步驟6:編寫Tiles定義 156
14.6.7 步驟7:放入Find Tile 156
14.6.8 步驟8:部署和測試 157
14.7 小結 157
第15章 Validator框架 158
15.1 聲明驗證器插件 159
15.2 驗證器DTD基礎 160
15.3 使用Validator框架 161
15.3.1 例子:驗證 RegistrationForm 161
15.3.2 驗證嵌套和索引屬性 165
15.3.3 使用常數 166
15.3.4 客戶端驗證 167
15.4 標準驗證器 167
15.4.1 使用validwhen 168
15.4.2 對索引的字段使用validwhen 169
15.5 添加定制驗證 170
15.5.1 實現validate() 171
15.5.2 擴展Validator框架 171
15.5.3 實現Java處理器類 172
15.6 遷移遺留代碼 176
15.7 本地化驗證 177
15.8 實驗15:在LILLDEP中使用Validator框架 177
15.9 有用的鏈接 178
15.10 小結 178
第16章 動態(tài)表單 179
16.1 聲明動態(tài)表單 179
16.1.1 聲明一個簡單屬性 181
16.1.2 聲明索引屬性 181
16.1.3 聲明一個映射屬性 182
16.1.4 聲明嵌套屬性 182
16.2 存取動態(tài)屬性 183
16.3 動態(tài)表單的缺點 183
16.4 驗證動態(tài)表單 184
16.5 使用動態(tài)表單的注冊Web應用程序 185
16.6 LazyValidatorForm(Struts 1.2.6+) 189
16.7 BeanValidatorForm(Struts 1.2.6+)的隱藏威力 192
16.8 實驗室16:在LILLDEP中刪除選定的聯系人 192
16.8.1 步驟1:聲明SelectionForm表單bean 193
16.8.2 步驟2:修改listing.jsp 193
16.8.3 步驟3:創(chuàng)建刪除聯系人的Action 193
16.9 有用的鏈接 193
16.10 小結 194
第17章 Struts錦囊 195
17.1 PropertyUtils 195
17.1.1 使用PropertyUtils 196
17.1.2 小結 197
17.2 DownloadAction(Struts 1.2.6+) 198
17.3 LocaleAction 200
17.4 IncludeAction 和ForwardAction 202
17.5 LookupDispat hAction 203
17.6 DispatchAction 208
17.7 MappingDispatchAction 209
17.8 使用全局轉發(fā) 212
17.9 日志 212
17.10 使用通配符 214
17.11 分解struts-config.xml 216
17.12 有用的鏈接 219
17.13 小結 219
第18章 復習實驗:集合功能 220
18.1 實驗18a:主集合頁面 221
18.2 實驗18b:新的集合頁面 221
18.3 實驗18 :集合列表頁面 223
18.4 實驗18d:刪除選擇的聯系人 224
18.5 實驗18e:添加選擇的聯系人 225
18.6 實驗18f:前后導航 226
18.7 小結 227
第19章 開發(fā)插件 228
19.1 手頭的任務 228
19.2 實現路線圖 231
19.3 Struts如何處理表單bean 231
19.4 插件的解剖 234
19.5 實現DynaFormsPlugIn 235
19.6 用Apache Digester讀取XML
19.7 實現DynaFormsLoaderFactory 240
19.8 DefaultDynaFormsLoader 243
19.9 實驗19:測試DynaForms插件的使用 251
19.10 增加功能的實驗:處理<set-property> 251
19.11 有用的鏈接 253
19.12 小結 254
第20章 JSF和Struts Shale 255
20.1 JSF 概覽 255
20.2 Shale概覽 256
20.3 學習Struts是浪費時間嗎 257
20.4 JSF 258
20.4.1 服務器端UI組件 258
20.4.2 請求處理生命周期 260
20.4.3 事件和事件監(jiān)聽器 262
20.4.4 JSF 標簽庫 266
20.4.5 值綁定和方法綁定 266
20.4.6 導航 267
20.5 示例:注冊Web應用程序 268
20.5.1 配置JSF 268
20.5.2 消息資源 269
20.5.3 user后臺bean 270
20.5.4 視圖 277
20.6 接下來去哪里 280
20.7 實驗20:Struts-Faces集成庫 281
20.7.1 步驟1:準備開發(fā) 281
20.7.2 步驟2:安裝JSF. JSTL和Struts-Faces集成庫 282
20.7.3 步驟3:編輯web.xml和struts-config.xml 282
20.7.4 步驟4:遷移Struts JSP頁面 283
20.7.5 步驟5:遷移<forward>和輸入 284
20.7.6 步驟6:使進入點轉發(fā)到*.faces 285
20.7.7 步驟7:如有必要,269修改Action 285
20.7.8 步驟8:添加必要的<managed-bean> 聲明 286
20.7.9 小結 286
20.8 Struts Shale預覽 286
20.8.1 ViewController 287
20.8.2 對話管理器 291
20.8.3 集成驗證器框架 293
20.8.4 JNDI集成 295
20.8.5 通過Clay重用視圖 296
20.8.6 服務器端Ajax支持 297
20.8.7 測試框架 297
20.9 JSF. Shale與Struts 297
20.10 有用的鏈接 299
20.11 小結 300
附錄A 模型框架 301
附錄B 常用類 314
附錄C (圖靈網站下載)
附錄D (圖靈網站下載)...