內容簡介
《Struts 2 Web開發學習實錄》介紹了比較流行的技術Struts 2,全書分為4篇,分別為:Struts 2基礎篇、Struts 2知識篇、Struts 2套用篇和實例篇。Struts 2基礎篇(第1~2章)講解了Struts 2的基礎配置。Struts 2知識篇(第3~10章)講解了Struts 2的各種知識,如:數據類型轉換、國際化、異常處理、攔截器、數據校驗、OGNL、標籤庫、檔案上傳下載和避免表單重複提交等。Struts 2套用篇(第11~13章)講解了Struts 2與Hibernate的整合開發,Struts 2、Hibernate和Spring的整合開發,以及Struts 2與JFreeChart的整合,還有Struts 2和Ajax的結合套用。最後實例篇(第14~15章)通過太極研修院企業網站和人力資源管理系統兩個綜合實例幫助讀者全面掌握在實際項目中使用Struts 2技術,提高對大型套用系統的整體把握,使讀者熟練掌握Struts 2技術。
《Struts 2 Web開發學習實錄》適合具有一定Web開發經驗的開發人員,或具有其他Web框架使用經驗的開發人員或想要學習Struts 2開發的開發人員,以及正在從事Java Web開發的開發人員。
編輯推薦
《Struts 2 Web開發學習實錄》:迅速提高讀者Web開發能力,全面挖掘讀者開發潛力。
一線資深Web程式設計師經驗力作,窗區域網路獨家推薦自學教材。
16個小時視頻教學,簡化學習過程。
60個實戰案例與理論知識綜合講解,提高套用能力。
網站互動教學,QQ群線上幫助讀者解疑。
目錄
第1章 Struts 2揚帆起航 1
1.1 Struts 2發展史 2
視頻教學:7分鐘 2
1.1.1 Struts 2的簡介 2
1.1.2 Struts 2和Struts 1的不同 2
1.2 Struts 2體系介紹 4
1.2.1 基礎知識——Struts 2框架架構流程 4
1.2.2 基礎知識——Struts 2的配置檔案 4
1.2.3 基礎知識——Struts 2的控制器組件 8
1.2.4 實例描述 8
1.2.5 實例套用 9
1.2.6 運行結果 11
1.2.7 實例分析 12
1.3 Struts 2的Hello World 12
視頻教學:8分鐘 12
1.3.1 基礎知識——Struts 2標籤 12
1.3.2 實例描述 13
1.3.3 實例套用 13
1.3.4 運行結果 15
1.3.5 實例分析 16
1.4 常見問題解答 16
1.4.1 配置struts.xml時,class路徑錯誤 16
1.4.2 Struts 2標籤庫引用錯誤 16
1.5 習題 17
第2章 完美的Struts 2配置 19
2.1 小小圖書館 20
視頻教學:47分鐘 20
2.1.1 基礎知識——Struts 2的基本配置 20
2.1.2 實例描述 26
2.1.3 實例套用 27
2.1.4 運行結果 31
2.1.5 實例分析 31
2.2 配置Struts 2的命名空間 32
視頻教學:35分鐘 32
2.2.1 基礎知識——深入Struts 2的配置檔案 32
2.2.2 實例描述 36
2.2.3 實例套用 36
2.2.4 運行結果 38
2.2.5 實例分析 39
2.3 管理用戶 39
視頻教學:8分鐘 39
2.3.1 基礎知識——Action的配置 39
2.3.2 實例描述 41
2.3.3 實例套用 41
2.3.4 運行結果 43
2.3.5 實例分析 44
2.4 部門信息管理 44
視頻教學:7分鐘 44
2.4.1 基礎知識——Result配置 44
2.4.2 實例描述 46
2.4.3 實例套用 46
2.4.4 運行結果 54
2.4.5 實例分析 55
2.5 用戶註冊動態配置Result 55
視頻教學:16分鐘 55
2.5.1 基礎知識——動態配置Result 56
2.5.2 實例描述 56
2.5.3 實例套用 56
2.5.4 運行結果 58
2.5.5 實例分析 59
2.6 登錄異常處理 59
視頻教學:7分鐘 59
2.6.1 基礎知識——Struts 2的異常機制 60
2.6.2 實例描述 60
2.6.3 實例套用 60
2.6.4 運行結果 63
2.6.5 實例分析 64
2.7 常見問題解答 64
2.7.1 Struts 2配置常見異常處理 64
2.7.2 HTTP Status 404 -在Action配置中沒有找到相應的Action Name怎么辦 65
2.7.3 Struts 2 Tomcat 6 MyEclipse 6.5報404錯誤 65
2.7.4 Struts 2配置問題Error filterStart如何解決 68
2.8 習題 69
第3章 數據類型大轉換 71
3.1 類型轉換的意義 72
視頻教學:15分鐘 72
3.1.1 基礎知識——類型轉換的意義 72
3.1.2 實例描述 73
3.1.3 實例套用 73
3.1.4 運行結果 75
3.1.5 實例分析 76
3.2 使用Struts 2的類型轉換 76
視頻教學:11分鐘 76
3.2.1 基礎知識——Struts 2對類型轉換的支持 76
3.2.2 實例描述 82
3.2.3 實例套用 82
3.2.4 運行結果 85
3.2.5 實例分析 86
3.3 自定義類型轉換器 86
視頻教學:15分鐘 86
3.3.1 基礎知識——編寫自定義類型轉換器 86
3.3.2 實例描述 89
3.3.3 實例套用 89
3.3.4 運行結果 92
3.3.5 實例分析 92
3.4 類型轉換中的異常處理 93
視頻教學:11分鐘 93
3.4.1 基礎知識——類型轉換中的異常處理 93
3.4.2 實例描述 96
3.4.3 實例套用 96
3.4.4 運行結果 100
3.4.5 實例分析 101
3.5 使用類型轉換註解 101
視頻教學:15分鐘 101
3.5.1 基礎知識——使用類型轉換註解 101
3.5.2 實例描述 105
3.5.3 實例套用 105
3.5.4 運行結果 109
3.5.5 實例分析 110
3.6 常見問題解答 110
3.6.1 有關Struts 2中的java.util.Date類型轉換的問題 110
3.6.2 怎么自定義struts 2類型轉換的全局與局部錯誤信息 111
3.6.3 自定義Struts 2中類型轉換失敗提示信息問題 111
3.6.4 Struts 2標籤<s:datetimepicker>中獲取到的日期格式如何轉換 112
3.7 習題 112
第4章 國際化與異常處理 115
4.1 國際化基礎 116
視頻教學:28分鐘 116
4.1.1 基礎知識——國際化與本地化 116
4.1.2 基礎知識——Locale類 116
4.1.3 基礎知識——資源包 118
4.1.4 基礎知識——載入資源檔案的順序 119
4.2 將用戶註冊國際化 120
視頻教學:17分鐘 120
4.2.1 基礎知識——國際化的配置檔案 120
4.2.2 基礎知識——在文本中使用參數 121
4.2.3 基礎知識——訪問國際化訊息 122
4.2.4 實例描述 124
4.2.5 實例套用 124
4.2.6 運行結果 125
4.2.7 實例分析 126
4.3 訊息提示國際化 126
視頻教學:6分鐘 126
4.3.1 實例描述 126
4.3.2 實例套用 126
4.3.3 運行結果 127
4.3.4 實例分析 128
4.4 手動改變註冊頁面國際化 128
視頻教學:8分鐘 128
4.4.1 基礎知識——用戶locale流程 128
4.4.2 實例描述 129
4.4.3 實例套用 129
4.4.4 運行結果 133
4.4.5 實例分析 133
4.5 Struts 2異常處理 133
視頻教學:7分鐘 133
4.5.1 基礎知識——傳統異常處理方式 134
4.5.2 基礎知識——Struts 2異常處理機制 135
4.5.3 基礎知識——配置異常處理 136
4.5.4 實例描述 137
4.5.5 實例套用 138
4.5.6 運行結果 139
4.5.7 實例分析 139
4.6 常見問題解答 140
4.6.1 Struts 2國際化中文亂碼解決問題 140
4.6.2 使用Struts 2國際化標籤的錯誤問題 141
4.7 習題 141
第5章 Struts 2中的攔路虎——攔截器 143
5.1 配置和使用攔截器 144
視頻教學:13分鐘 144
5.1.1 基礎知識——配置和使用攔截器 144
5.1.2 實例描述 149
5.1.3 實例套用 149
5.1.4 運行結果 150
5.1.5 實例分析 150
5.2 自定義攔截器 150
視頻教學:10分鐘 150
5.2.1 基礎知識——自定義攔截器 150
5.2.2 實例描述 153
5.2.3 實例套用 153
5.2.4 運行結果 155
5.2.5 實例分析 156
5.3 攔截器深度剖析 156
視頻教學:25分鐘 156
5.3.1 基礎知識——深度剖析攔截器 156
5.3.2 實例描述 160
5.3.3 實例套用 160
5.3.4 運行結果 163
5.3.5 實例分析 164
5.4 Struts 2內置攔截器 164
視頻教學:7分鐘 164
5.4.1 基礎知識——內置攔截器 164
5.4.2 實例描述 168
5.4.3 實例套用 169
5.4.4 運行結果 171
5.4.5 實例分析 173
5.5 使用攔截器完成許可權控制 173
視頻教學:8分鐘 173
5.5.1 基礎知識——實現許可權控制攔截器 173
5.5.2 實例描述 175
5.5.3 實例套用 175
5.5.4 運行結果 177
5.5.5 實例分析 178
5.6 使用攔截器註解 179
視頻教學:7分鐘 179
5.6.1 基礎知識——使用攔截器註解 179
5.6.2 實例描述 180
5.6.3 實例套用 180
5.6.4 運行結果 183
5.6.5 實例分析 183
5.7 常見問題解答 184
5.7.1 Struts 2自帶的攔截器已經很強大,是否可以不用自定義攔截器 184
5.7.2 Struts 2攔截器的錯誤信息如何顯示在頁面上 184
5.7.3 Struts 2攔截器後跳轉頁面問題 185
5.7.4 Struts 2攔截器通俗點到底是什麼?為什麼要用 186
5.8 習題 186
第6章 探索數據校驗的奧妙 191
6.1 手動完成輸入校驗 192
視頻教學:16分鐘 192
6.1.1 基礎知識——手動完成輸入校驗 192
6.1.2 實例描述 195
6.1.3 實例套用 196
6.1.4 運行結果 198
6.1.5 實例分析 199
6.2 基本輸入校驗 199
視頻教學:7分鐘 199
6.2.1 基礎知識——基本輸入校驗 199
6.2.2 實例描述 208
6.2.3 實例套用 209
6.2.4 運行結果 211
6.2.5 實例分析 212
6.3 內置校驗器 212
視頻教學:74分鐘 212
6.3.1 基礎知識——內置校驗器 212
6.3.2 實例描述 221
6.3.3 實例套用 222
6.3.4 運行結果 223
6.3.5 實例分析 224
6.4 開發自己的驗證器 224
視頻教學:10分鐘 224
6.4.1 基礎知識——開發屬於自己的驗證器 224
6.4.2 實例描述 227
6.4.3 實例套用 227
6.4.4 運行結果 229
6.4.5 實例分析 230
6.5 使用visitor欄位驗證器復用驗證 230
視頻教學:8分鐘 230
6.5.1 基礎知識——VisitorFieldValidator驗證器介紹 230
6.5.2 實例描述 232
6.5.3 實例套用 232
6.5.4 運行結果 235
6.5.5 實例分析 236
6.6 使用驗證註解 236
視頻教學:8分鐘 236
6.6.1 基礎知識——使用驗證註解 236
6.6.2 實例描述 248
6.6.3 實例套用 248
6.6.4 運行結果 252
6.6.5 實例分析 252
6.7 常見問題解答 253
6.7.1 Struts 2.1.8版本是否支持客戶端校驗 253
6.7.2 校驗器的配置風格都有哪些,它們的校驗順序原則,校驗器短路的原則 253
6.7.3 Struts 2如何顯示驗證出錯信息 254
6.8 習題 255
第7章 Struts 2中完整的OGNL 257
7.1 使用OGNL表達式獲取數據 258
視頻教學:25分鐘 258
7.1.1 基礎知識——OGNL基礎 258
7.1.2 實例描述 261
7.1.3 實例套用 261
7.1.4 運行結果 263
7.1.5 實例分析 264
7.2 人員集合的操作 264
視頻教學:10分鐘 264
7.2.1 基礎知識——OGNL對集合的操作 264
7.2.2 實例描述 266
7.2.3 實例套用 267
7.2.4 運行結果 268
7.2.5 實例分析 269
7.3 公司員工性別調查 269
視頻教學:10分鐘 269
7.3.1 基礎知識——lambda表達式 269
7.3.2 實例描述 270
7.3.3 實例套用 270
7.3.4 運行結果 272
7.3.5 實例分析 272
7.4 獲取建材信息 272
視頻教學:11分鐘 272
7.4.1 基礎知識——Struts 2對OGNL表達式的增強 273
7.4.2 實例描述 276
7.4.3 實例套用 276
7.4.4 運行結果 279
7.4.5 實例分析 279
7.5 常見問題解答 280
7.5.1 OGNL運算問題 280
7.5.2 OGNL調用方法:#session. cart.showcart()訪問不到 280
7.5.3 後台報錯:Caught OgnlException while setting property 'operate Result' on type怎么回事 281
7.5.4 JSP腳本在Struts 2中利用OGNL和標籤如何表示 282
7.6 習題 282
第8章 Struts 2的標籤庫 285
8.1 演員年齡的排序 286
視頻教學:33分鐘 286
8.1.1 基礎知識——控制標籤 286
8.1.2 實例描述 292
8.1.3 實例套用 292
8.1.4 運行結果 294
8.1.5 實例分析 295
8.2 顯示學員信息 295
視頻教學:54分鐘 295
8.2.1 基礎知識——數據標籤 295
8.2.2 實例描述 305
8.2.3 實例套用 305
8.2.4 運行結果 306
8.2.5 實例分析 306
8.3 主題和模板 307
視頻教學:13分鐘 307
8.3.1 基礎知識——主題和模板 307
8.3.2 基礎知識——Struts 2內置的四種主題 309
8.4 個人信息表單 310
視頻教學:89分鐘 310
8.4.1 基礎知識——表單標籤 310
8.4.2 實例描述 326
8.4.3 實例套用 326
8.4.4 運行結果 328
8.4.5 實例分析 329
8.5 選擇自己喜歡的節日 329
視頻教學:11分鐘 329
8.5.1 基礎知識——非表單標籤 329
8.5.2 實例描述 331
8.5.3 實例套用 331
8.5.4 運行結果 333
8.5.5 實例分析 333
8.6 常見問題解答 334
8.6.1 Struts 2一遇到標籤就出錯 334
8.6.2 Struts標籤庫導入錯誤 334
8.6.3 iterator標籤如何循環遍歷某一實體下的set集合數據 335
8.6.4 使用Struts 2的bean標籤出錯 336
8.6.5 Struts 2的驗證框架,用的是哪個標籤返回錯誤信息 336
8.6.6 <s:iterator>標籤循環遍歷list無法取出類型為類的屬性提示ognl.NoConversionossible錯誤 337
8.6.7 Struts 2在iterator中嵌套radio時,radio標籤該怎么寫 338
8.7 習題 339
第9章 輕鬆實現檔案上傳和下載 341
9.1 檔案上傳的原理 342
視頻教學:6分鐘 342
9.2 Struts 2中的檔案上傳 346
視頻教學:11分鐘 347
9.2.1 基礎知識——Struts 2對檔案上傳的支持 347
9.2.2 實例描述 347
9.2.3 實例套用 348
9.2.4 運行結果 351
9.2.5 實例分析 351
9.3 上傳檔案過濾 351
視頻教學:11分鐘 351
9.3.1 基礎知識——對檔案上傳進行更多的控制 352
9.3.2 實例描述 353
9.3.3 實例套用 353
9.3.4 運行結果 354
9.3.5 實例分析 355
9.4 同時上傳多個檔案 355
視頻教學:13分鐘 355
9.4.1 基礎知識——同時上傳多個檔案 355
9.4.2 實例描述 356
9.4.3 實例套用 356
9.4.4 運行結果 359
9.4.5 實例分析 359
9.5 檔案下載 360
視頻教學:6分鐘 360
9.5.1 基礎知識——Struts 2對檔案下載的支持 360
9.5.2 實例描述 362
9.5.3 實例套用 362
9.5.4 運行結果 363
9.5.5 實例分析 364
9.6 常見問題解答 364
9.6.1 Struts 2上傳檔案大小問題 364
9.6.2 Struts 2中,上傳檔案過大時,JSP頁面也不顯示錯誤 365
9.6.3 Struts 2上傳檔案後保存到我的項目資料夾中卻是一個tmp檔案 366
9.6.4 Struts 2上傳中文檔案名稱檔案下載後編程亂碼 367
9.7 習題 367
第10章 避免表單重複提交和等待頁面 371
10.1 避免表單重複提交 372
視頻教學:25分鐘 372
10.1.1 基礎知識——token標籤的作用 372
10.1.2 基礎知識——使用TokenInterceptor 373
10.1.3 基礎知識——使用TokenSession StoreInterceptor 373
10.1.4 實例描述 374
10.1.5 實例套用 374
10.1.6 運行結果 375
10.1.7 實例分析 376
10.2 設定等待頁面 376
視頻教學:11分鐘 376
10.2.1 基礎知識——使用ExecuteAndWaitInterceptor 377
10.2.2 實例描述 377
10.2.3 實例套用 378
10.2.4 運行結果 379
10.2.5 實例分析 380
10.3 常見問題解答 380
10.4 習題 381
第11章 黃金搭檔——Struts 2集成Spring與Hibernate 383
11.1 用戶註冊與登錄 384
視頻教學:13分鐘 384
11.1.1 基礎知識——集成Hibernate 384
11.1.2 實例描述 391
11.1.3 實例套用 391
11.1.4 運行結果 396
11.1.5 實例分析 397
11.2 添加用戶 397
視頻教學:18分鐘 398
11.2.1 基礎知識——集成Spring 398
11.2.2 實例描述 403
11.2.3 實例套用 403
11.2.4 運行結果 410
11.2.5 實例分析 411
11.3 常見問題解答 411
11.3.1 Struts 2+Hibernate+Spring整合錯誤嚴重:Exception starting filter struts 2 411
11.3.2 出現java.lang.NoClassDef FoundError問題 412
11.3.3 org.hibernate-id.Identifier GenerationException異常問題 412
11.4 習題 413
第12章 整合JFreeChart 415
12.1 初始JFreeChart 416
視頻教學:5分鐘 416
12.1.1 基礎知識——初始JFreeChart 416
12.1.2 實例描述 418
12.1.3 實例套用 418
12.1.4 運行結果 420
12.1.5 實例分析 421
12.2 JFreeChart統計圖表——柱狀圖 421
視頻教學:6分鐘 421
12.2.1 基礎知識——使用JFreeChart生成柱狀圖 421
12.2.2 實例描述 423
12.2.3 實例套用 423
12.2.4 運行結果 425
12.2.5 實例分析 425
12.3 JFreeChart統計圖表——折線圖 426
視頻教學:6分鐘 426
12.3.1 基礎知識——使用JFreeChart生成折線圖 426
12.3.2 實例描述 427
12.3.3 實例套用 427
12.3.4 運行結果 430
12.3.5 實例分析 431
12.4 JFreeChart統計圖表——時間順序圖 431
視頻教學:6分鐘 431
12.4.1 基礎知識——使用JFreeChart
生成時間順序圖 431
12.4.2 實例描述 432
12.4.3 實例套用 432
12.4.4 運行結果 434
12.4.5 實例分析 434
12.5 在網頁中生成帶互動功能的統計圖 435
視頻教學:6分鐘 435
12.5.1 基礎知識——在網頁中生成帶互動功能的統計圖 435
12.5.2 實例描述 436
12.5.3 實例套用 437
12.5.4 運行結果 440
12.5.5 實例分析 441
12.6 在Struts 2套用中使用JFreeChart 441視頻教學:6分鐘 441
12.6.1 基礎知識——在Struts 2套用中使用JFreeChart 441
12.6.2 實例描述 444
12.6.3 實例套用 444
12.6.4 運行結果 446
12.6.5 實例分析 446
12.7 常見問題解答 447
12.7.1 JFreeChart中文亂碼問題 447
12.7.2 在unix作業系統下使用JFreeChart問題 447
12.7.3 使用JFreeChart生成統計圖出現UnsatisfiedLinkError錯誤 447
12.7.4 每次生成JFreeChart統計圖都會拋出異常 448
12.7.5 JFreeChart生成的統計圖時間軸中時間的顯示格式問題 448
12.8 習題 449
第13章 當Struts 2碰見Ajax 451
13.1 用戶註冊校驗 452
視頻教學:7分鐘 452
13.1.1 基礎知識——基於Ajax的輸入校驗 452
13.1.2 實例描述 455
13.1.3 實例套用 455
13.1.4 運行結果 458
13.1.5 實例分析 459
13.2 JSON串傳遞顧客信息數據 459
視頻教學:27分鐘 459
13.2.1 基礎知識——使用JSON串作為數據的載體 459
13.2.2 實例描述 463
13.2.3 實例套用 463
13.2.4 運行結果 466
13.2.5 實例分析 466
13.3 Dojo異步獲取用戶信息 467
視頻教學:8分鐘 467
13.3.1 基礎知識——結合Dojo簡化Ajax套用的開發 467
13.3.2 實例描述 471
13.3.3 實例套用 471
13.3.4 運行結果 472
13.3.5 實例分析 473
13.4 Ajax的異步請求來獲取服務端數據 473
視頻教學:56分鐘 473
13.4.1 基礎知識——Struts 2的Ajax標籤 473
13.4.2 實例描述 484
13.4.3 實例套用 484
13.4.4 運行結果 487
13.4.5 實例分析 488
13.5 常見問題解答 488
13.5.1 Ajax獲取Struts 2的Action的返回信息問題 488
13.5.2 Struts 2中使用Ajax標籤出錯問題 489
13.5.3 Struts 2怎樣獲取Ajax post請求傳遞的數據? 490
13.6 習題 490
第14章 太極研修院企業網站 493
14.1 太極研修院企業網站簡介 494
14.1.1 系統功能 494
14.1.2 系統架構 499
14.2 資料庫設計和實現 500
14.3 後台模組——新聞中心 504
14.3.1 查詢新聞信息,分頁顯示 504
14.3.2 添加新聞信息 516
14.3.3 修改新聞信息 518
14.4 前台展示——新聞中心 522
14.4.1 獲取二級欄目的新聞信息 522
14.4.2 獲取特定的新聞信息 524
14.5 後台模組——太極商城 525
14.5.1 查詢商品信息,分頁顯示 525
14.5.2 添加商品信息 529
14.5.3 刪除商品信息 531
14.6 前台展示——太極商城 532
14.6.1 獲取二級欄目的商品信息 532
14.6.2 獲取特定的商品信息 534
14.7 後台模組——信息管理 536
14.7.1 信息管理 537
14.7.2 友情連結 544
14.8 前台展示——線上視頻 545
14.8.1 獲取視頻列表信息 545
14.8.2 獲取特定的視頻信息 547
14.9 前台展示——友情連結 548
14.10 總結 549
第15章 人力資源管理系統 551
15.1 系統分析 552
15.1.1 系統需求分析 552
15.1.2 系統可行性分析 552
15.2 系統設計 553
15.2.1 總體設計 553
15.2.2 資料庫設計 554
15.3 系統運行和開發環境的搭建 557
15.3.1 web.xml配置檔案 558
15.3.2 struts.xml配置檔案 558
15.3.3 hibernate.cfg.xml配置檔案 560
15.3.4 applicationContext.xml配置檔案 560
15.4 系統的實現 562
15.4.1 管理員模組——代碼開發步驟 562
15.4.2 員工管理模組——jQuery框架的使用 577
15.4.3 應聘管理模組 583
15.4.4 獎懲管理模組 587
15.4.5 培訓管理模組 590
15.4.6 薪資管理模組 594
15.5 總結 598
附錄 參考答案 599