圖書簡介
Struts 2是一款真正意義上按照MVC架構模式搭建的Web開發框架。本書全面講述Struts 2開發框架的知識,包括Struts 2概述、Struts 2配置詳解、Struts 2攔截器、類型轉換、輸入校驗、Struts 2國際化與異常處理、OGNL、Struts 2標籤庫、Struts 2資料庫的套用、檔案的上傳與下載、避免表單重複提交與等待頁面以及Struts 2與其他流行框架的整合,最後以一個
Spring+
Struts 2+
Hibernate三大框架整合的實例,綜合地介紹Struts 2在實際套用中的使用。本書光碟提供了全程配音視頻檔案和實例原始碼。
圖書目錄
第1章 Struts2概述 1
1.1.1 MVC設計模式 1
1.1.2 MVC的優點 3
1.1.3 Model1和Model2開發模式 3
1.2 Struts2體系介紹 4
1.2.1 核心控制器 4
1.2.2 業務處理器Action 5
1.2.3 Struts2配置檔案 5
1.2.4 Struts2的控制器組件 6
1.2.5 Struts2的標籤庫 7
1.3 搭建Struts2開發環境 8
1.3.1 安裝配置JDK 8
1.3.2 下載安裝Tomcat 9
1.3.3 下載安裝Struts2 10
1.3.4 使用MyEclipse開發工具 11
1.4 Struts2套用示例 13
1.4.1 配置web.xml檔案 13
1.4.2 Action業務控制器 14
1.4.3 struts.xml配置檔案 14
1.4.4 添加視圖檔案完成套用 15
1.4.5 運行實例 15
1.5 在Struts2中使用POJO 16
1.6 項目案例:編寫簡單的登錄驗證
系統 18
1.7 習題 19
1.8 實踐疑難解答 20
1.8.1 Struts2接收日期格式賦值
錯誤 20
1.8.2 關於Struts2標籤的一個問題 21
第2章 Struts2配置詳解 22
2.1 Struts2的配置檔案 22
2.1.1 web.xml 22
2.1.2 struts.xml 23
2.1.3 struts-default.xml 26
2.1.4 struts.properties 27
2.1.5 靜態內容 30
2.2 struts.xml配置詳解 30
2.2.1 Bean配置 31
2.2.2 常量配置 32
2.2.3 包配置 33
2.2.4 命名空間配置 34
2.2.5 包含配置 35
2.2.6 攔截器配置 36
2.3 配置Action 37
2.3.1 實現Action類 37
2.3.2 Action間接訪問ServletAPI 39
2.3.3 Action直接訪問ServletAPI 41
2.3.4 配置Action 43
2.3.5 動態方法調用 43
2.3.6 為Action元素指定method
屬性 45
2.3.7 使用通配符映射 46
2.3.8 默認Action 46
2.4 配置Result 47
2.4.1 結果映射 47
2.4.2 結果類型 48
2.4.3 dispatcher結果類型 49
2.4.4 redirect結果類型 50
2.4.5 redirectAction結果類型 51
2.4.6 chain結果類型 51
2.4.7 plainText結果類型 52
2.4.8 通配符動態配置Result 52
2.4.9 OGNL動態配置Result 52
2.5 使用註解配置Action 53
2.5.1 與Action配置相關的註解 53
2.5.2 使用註解配置Action的注意
事項 54
2.6 項目案例:實現用戶的註冊功能 55
2.7 習題 57
2.8 實踐疑難解答 58
2.8.1 通配符的使用效率 58
2.8.2 配置struts.xml檔案時,class
路徑錯誤 59
第3章 Struts2的攔截器 60
3.1 攔截器簡介 60
3.2 Struts2攔截器 61
3.2.1 配置攔截器 61
3.2.2 使用攔截器 64
3.2.3 默認攔截器 64
3.3 自定義攔截器 66
3.3.1 自定義攔截器類 66
3.3.2 使用自定義攔截器 67
3.4 深入攔截器 70
3.4.1 方法過濾 70
3.4.2 攔截器的執行順序 74
3.4.3 攔截結果監聽器 75
3.4.4 覆蓋攔截器棧中攔截器參數 76
3.5 Struts2框架的系統攔截器 78
3.5.1 系統攔截器 78
3.5.2 timer攔截器實例 81
3.6 項目案例:實現文字過濾功能 82
3.7 習題 85
3.8 實踐疑難解答 87
3.8.1 為什麼要用攔截器的問題 87
3.8.2 設定默認攔截器的問題 87
3.8.3 Action方法的執行和攔截器
關係的問題 88
3.8.4 攔截器的錯誤信息如何顯示
在頁面上 88
第4章 類型轉換 90
4.1 傳統的類型轉換 90
4.2 類型轉換器 91
4.2.1 類型轉換器介紹 91
4.2.2 編寫類型轉換器 91
4.3 自定義類型轉換器 93
4.3.1 基於OGNL的類型轉換器 93
4.3.2 基於Struts2的類型轉換器 94
4.3.3 註冊自定義類型轉換器 95
4.3.4 數組屬性類型轉換器 96
4.3.5 集合屬性類型轉換器 97
4.4 使用Struts2的類型轉換 99
4.4.1 Struts2系統內建的類型
轉換器 99
4.4.2 null屬性的處理 99
4.4.3 使用OGNL表達式 100
4.4.4 使用集合類型屬性 101
4.4.5 使用Set類型屬性 103
4.5 類型轉換中的異常處理 104
4.5.1 類型轉換異常攔截器 104
4.5.2 改進類型轉換異常顯示信息 105
4.5.3 處理複合類型轉換異常 105
4.6 項目案例:使用List屬性同時處理多
條註冊數據 106
4.7 習題 108
4.8 實踐疑難解答 110
4.8.1 Struts2Date類型轉換問題 110
4.8.2 Struts2的自動類型轉換出錯 111
第5章 Struts2的輸入校驗 113
5.1 輸入校驗概述 113
5.1.1 輸入校驗的必要性 113
5.1.2 客戶端和伺服器端校驗 114
5.2 使用validate進行輸入校驗 116
5.2.1 validate()方法輸入校驗 116
5.2.2 validateXxx()方法輸入校驗 117
5.2.3 Struts2的輸入校驗流程 119
5.3 基本輸入校驗 120
5.3.1 定義校驗規則 120
5.3.2 校驗器配置風格 123
5.3.3 輸入校驗的國際化信息 124
5.3.4 校驗的搜尋順序 127
5.4 Struts2框架的校驗器 128
5.4.1 必填校驗器 128
5.4.2 必填字元串校驗器 129
5.4.3 字元串長度校驗器 130
5.4.4 整數校驗器 131
5.4.5 日期校驗器 133
5.4.6 轉換校驗器 134
5.4.7 郵件地址校驗器 135
5.4.8 網址校驗器 135
5.4.9 表達式校驗器 135
5.4.10 欄位表達式校驗器 136
5.4.11 正則表達式校驗器 137
5.4.12 visitor校驗器 137
5.5 自定義校驗器 138
5.6 項目案例:學生信息錄入 140
5.7 習題 143
5.8 實踐疑難解答 144
5.8.1 使用轉換校驗器拋出異常 144
5.8.2 Struts2如何顯示驗證出錯
信息 144
5.8.3 Struts2中校驗方法的使用 145
第6章 Struts2國際化與異常處理 146
6.1 Java國際化 146
6.1.1 Java對國際化的支持 146
6.1.2 Java支持的語言和區域 148
6.1.3 使用資源檔案 149
6.1.4 使用類檔案代替資源檔案 150
6.1.5 MessageFormat類 151
6.2 Struts2國際化 151
6.2.1 Struts2對國際化的支持 152
6.2.2 使用占位符 155
6.2.3 包範圍資源檔案 157
6.2.4 Action範圍資源檔案 159
6.2.5 臨時資源檔案 159
6.2.6 載入資源檔案的順序 160
6.3 動態訪問國際化資源檔案 161
6.4. Struts2異常處理 164
6.4.1 傳統異常處理方式 164
6.4.2 Struts2異常處理機制 165
6.4.3 配置異常處理 166
6.4.4 異常處理實例 166
6.5 項目案例:實現註冊系統的國際化
功能 168
6.6 習題 172
6.7 實踐疑難解答 174
6.7.1 Struts2國際化中文亂碼解決
問題 174
6.7.2 使用Struts2國際化標籤的
錯誤問題 175
第7章 OGNL 177
7.1 OGNL基礎 177
7.1.1 OGNL三要素 177
7.1.2 OGNL表達式 178
7.1.3 對集合的操作 180
7.2 lambda表達式 184
7.3 Struts2的OGNL 187
7.4 項目案例:獲取員工信息 191
7.5 習題 193
7.6 實踐疑難解答 194
7.6.1 OGNL表達式問題 194
7.6.2 Struts2的OGNL調用Action
中的方法 194
7.6.3 #、%、$在頁面表達式的
區別 195
第8章 Struts2標籤庫 196
8.1 Struts2的標籤庫概述 196
8.1.1 標籤庫簡介 196
8.1.2 Struts2的標籤分類 197
8.2 控制標籤 198
8.2.1 if/elseif/else標籤 198
8.2.2 iterator標籤 198
8.2.3 append標籤 199
8.2.4 generator標籤 200
8.2.5 merge標籤 201
8.2.6 subset標籤 202
8.2.7 sort標籤 203
8.3 數據標籤 204
8.3.1 action標籤 204
8.3.2 bean標籤 206
8.3.3 date標籤 207
8.3.4 debug標籤 207
8.3.5 include標籤 208
8.3.6 param標籤 208
8.3.7 push標籤 209
8.3.8 set標籤 209
8.3.9 url標籤 210
8.3.10 property標籤 211
8.4 主題與模板 212
8.4.1 主題 212
8.4.2 模板 213
8.4.3 使用主題模板 213
8.5 表單標籤 214
8.5.1 表單標籤通用屬性 214
8.5.2 checkboxlist標籤 214
8.5.3 combobox標籤 216
8.5.4 doubleselect標籤 216
8.5.5 datetimepicker標籤 217
8.5.6 head標籤 218
8.5.7 file標籤 219
8.5.8 hidden標籤 219
8.5.9 select標籤 220
8.5.10 radio標籤 220
8.5.11 optgroup標籤 221
8.5.12 textfield、password和textarea
標籤 222
8.5.13 token標籤 222
8.5.14 updownselect標籤 223
8.5.15 optiontransferselect標籤 224
8.6 非表單標籤 225
8.6.1 actionerror和actionmessage
標籤 225
8.6.2 component標籤 226
8.6.3 tree和treenode標籤 227
8.7 項目案例:編寫一個用戶註冊頁面 228
8.8 習題 229
8.9 實踐疑難解答 231
8.9.1 表單標籤hidden的使用問題 231
8.9.2 Struts2<s:iterator>標籤問題 231
第9章 Struts2資料庫套用 232
9.1 訪問MySQL資料庫 232
9.1.1 創建一個資料庫 232
9.1.2 建立JDBC連線 233
9.2 使用Tomcat數據源 234
9.3 Struts2數據分頁 237
9.4 項目案例:商品的增刪改查 242
9.4.1 通用模組的實現 242
9.4.2 添加商品 244
9.4.3 修改商品 246
9.4.4 刪除商品 248
9.5 習題 250
9.6 實踐疑難解答 251
9.6.1 MySQL自增列的設定問題 251
9.6.2 MySQL代碼中關鍵字的
大小寫問題 251
9.6.3 MySQL中limit的用法 252
第10章 檔案上傳與下載 253
10.1 檔案上傳 253
10.1.1 基於表單的檔案上傳 253
10.1.2 手動上傳 255
10.1.3 Struts2對檔案上傳的支持 256
10.1.4 在Struts2中實現檔案上傳 257
10.1.5 實現上傳檔案過濾 259
10.2 多個檔案同時上傳 262
10.2.1 使用數組同時上傳多個
檔案 262
10.2.2 使用List同時上傳多個
檔案 263
10.3 檔案下載 265
10.3.1 使用Struts2控制檔案下載 265
10.3.2 下載許可權控制 266
10.4 項目案例:實現多個檔案的上傳
功能 267
10.5 習題 269
10.6 實踐疑難解答 271
10.6.1 Struts2檔案上傳類型問題 271
10.6.2 Struts2判斷上傳檔案大小
問題 271
第11章 避免表單重複提交與等待
頁面 272
11.1 表單重複提交原因 272
11.2 Struts2實現方式 272
11.2.1 使用token標籤 273
11.2.2 使用tokenSession攔截器 275
11.3 顯示等待頁面 277
11.4 項目案例:編寫簡單的登錄系統 279
11.5 習題 282
11.6 實踐疑難解答 284
11.6.1 token標籤的問題 284
11.6.2 tokenSession攔截器的問題 285
11.6.3 顯示等待頁面錯誤 285
第12章 整合Spring 287
12.1 Spring概述 287
12.1.1 Spring的起源及優點 287
12.1.2 Spring的核心 288
12.1.3 下載安裝Spring 288
12.1.4 使用Spring的IoC容器 288
12.2 Struts2整合Spring 290
12.2.1 整合原理 290
12.2.2 整合步驟 291
12.2.3 Struts2整合Spring示例 291
12.3 項目案例:編寫簡單的登錄驗證
系統 294
12.4 習題 296
12.5 實踐疑難解答 297
12.5.1 訪問Action時請求參數為
null 297
12.5.2 Struts2整合Spring概念不清楚 298
第13章 整合Hibernate 299
13.2.2 Struts2與Hibernate的整合
方案 302
13.2.3 功能設計與資料庫設計 303
13.2.4 Hibernate映射對象到
資料庫 303
13.2.5 hibernate.cfg.xml配置檔案 304
13.2.6 構建SessionFactory 305
13.2.7 資料庫操作DAO 306
13.2.8 業務控制Action 308
13.2.9 struts.xml配置檔案 309
13.2.10 視圖檔案 310
13.3 習題 316
13.4 實踐疑難解答 318
13.4.1 使用Hibernate更改指定
屬性 318
13.4.2 Hibernate中常用的主鍵生成
策略有哪幾種 319
13.4.3 Hibernate調用createQuery()
方法的值的類型問題 320
第14章 整合其他框架技術 321
14.1 整合JSF 321
14.1.1 整合原理 321
14.1.2 整合步驟 322
14.1.3 整合實例 323
14.2 整合SiteMesh 327
14.2.1 SiteMesh簡介 327
14.2.2 下載安裝SiteMesh 328
14.2.3 SiteMesh的簡單套用 328
14.2.4 更複雜的裝飾器頁面 330
14.2.5 Struts2中使用SiteMesh 334
14.4 整合Tiles 348
14.4.1 Tiles簡介 348
14.4.2 下載安裝Tiles 349
14.4.3 Tiles的簡單套用 349
14.4.4 Struts2中使用Tiles 352
14.5 整合JFreeChart 356
14.5.1 JFreeChart簡介 356
14.5.2 下載安裝JFreeChart 356
14.5.3 JFreeChart的簡單套用 357
14.5.4 Struts2中使用JFreeChart 358
14.6 項目案例:開發線上投票系統 360
14.7 習題 363
14.8 實踐疑難解答 364
14.8.1 JSF的配置問題 364
14.8.2 JAR檔案的版本問題 365
第15章 人事管理系統 366
15.1 系統概述 366
15.1.1 需求分析 366
15.1.2 系統用例圖 367
15.1.3 系統設計 367
15.2 資料庫設計 368
15.3 搭建Struts2+Spring+Hibernate
開發環境 370
15.4 系統實現 376
15.4.1 通用模組的實現 376
15.4.2 部門管理 378
15.4.3 員工管理 384
15.4.4 招聘管理 391