作者簡介
BudiKurniawan,世界知名的Java專家和資深JavaEE高級架構師,自己創建了軟體諮詢和技術出版公司BrainySoftware。他還撰寫了深入揭示Tomcat工作機理和設計理念的名著HowTomcatWorks,並在多種權威出版物上發表過100多篇文章。編輯推薦
《深入淺出Struts2》是廣受讚譽的Struts2優秀教程.它全面而深入地闡述了Strut2的各個特性,並指導開發人員如何根據遇到的問題對症下藥。選擇使用最合適的特性。作者處處從實戰出發。在豐富的示例中直觀地探討了許多實用的技術。如數據類型轉換、檔案上傳和下載、Struts2套用的安全性、調試與性能分析、freemarker、Velocily、Ajax,等等。跟隨作者一道深入Struts2。聆聽大量來之不易的經驗之談。你對Struts2開發框架的理解和套用水平都將更上一層樓。
Struts2權威著作
深入全面闡釋Struts2的方方面面
涵蓋FreeMarker、Ajax等大量相關技術
目錄
第1章Model2應用程式1
1.1Model2概覽1
1.2帶servlet控制器的Model22
1.2.1Product動作類3
1.2.2ControllerServlet類4
1.2.3視圖6
1.2.4部署描述檔案8
1.2.5示例程式的運行9
1.3帶過濾器調度程式的Model29
1.4小結13
第2章初識Struts14
2.1Struts的優點14
2.2Struts的動作處理流程15
2.3攔截器17
2.4Struts配置檔案18
2.4.1struts.xml檔案19
2.4.2struts.properties檔案26
2.5Struts應用程式示例26
2.5.1部署描述檔案和Struts配置檔案27
2.5.2動作類28
2.5.3運行app02a程式29
2.6依賴注入29
2.6.1概述29
2.6.2依賴注入的幾種方式31
2.7小結31
第3章動作與結果32
3.1動作類32
3.2如何訪問資源34
3.2.1ServletActionContext對象34
3.2.2Aware接口35
3.2.3通過Aware接口訪問資源38
3.3把靜態參數傳遞給一個動作41
3.4ActionSupport類41
3.5結果42
3.5.1Chain43
3.5.2Dispatcher44
3.5.3FreeMarker44
3.5.4HttpHeader44
3.5.5Redirect45
3.5.6RedirectAction46
3.5.7Stream47
3.5.8Velocity47
3.5.9XSLT47
3.5.10PlainText47
3.6異常處理:exception-mapping元素47
3.7通配符映射48
3.8動態方法調用51
3.9對動作類進行測試51
3.10小結51
第4章OGNL52
4.1ValueStack棧52
4.2讀取ObjectStack里的對象的屬性53
4.3讀取ContextMap里的對象的屬性54
4.4如何調用欄位和方法55
4.5如何訪問數組類型的屬性56
4.6如何訪問List類型的屬性56
4.7如何訪問Map類型的屬性57
4.8JSPEL:當OGNL幫不上忙時58
4.9小結58
第5章表單標籤59
5.1Struts標籤的使用方法59
5.2表單標籤的共同屬性60
5.3form標籤62
5.4textfield、password、hidden標籤63
5.5submit標籤65
5.6reset標籤65
5.7label標籤66
5.8head標籤66
5.9textarea標籤66
5.10checkbox標籤67
5.11list、listKey和listValue屬性72
5.11.1賦值一個String72
5.11.2賦值一個Map73
5.11.3賦值一個Collection或一個對象數組73
5.12radio標籤74
5.13select標籤76
5.14用optgroup標籤對選項進行分組79
5.15checkboxlist標籤82
5.16combobox標籤83
5.17updownselect標籤85
5.18optiontransferselect標籤87
5.19doubleselect標籤90
5.20主題92
5.21小結94
第6章通用標籤95
6.1property標籤95
6.2a標籤97
6.3action標籤97
6.4param標籤98
6.5bean標籤98
6.6date標籤100
6.7include標籤100
6.8set標籤101
6.9push標籤103
6.10url標籤104
6.11if、else和elseif標籤105
6.12iterator標籤107
6.13append標籤110
6.14merge標籤111
6.15generator標籤113
6.16sort標籤116
6.17subset標籤118
6.18小結119
第7章類型轉換120
7.1類型轉換概述120
7.2類型轉換錯誤訊息的定製121
7.3類型轉換器的定製125
7.3.1對自定義的類型轉換器進行配置126
7.3.2自定義的類型轉換器示例127
7.4擴展StrutsTypeConverter類130
7.5與複雜對象配合使用134
7.6與Collection配合使用137
7.7與Map配合使用142
7.8小結145
第8章輸入驗證146
8.1驗證程式概述146
8.2驗證程式的配置147
8.3Struts內建驗證程式148
8.3.1required驗證程式149
8.3.2requiredstring驗證程式150
8.3.3stringlength驗證程式152
8.3.4int驗證程式154
8.3.5date驗證程式156
8.3.6email驗證程式157
8.3.7url驗證程式159
8.3.8regex驗證程式160
8.3.9expression和fieldexpression驗證程式161
8.3.10conversion驗證程式164
8.3.11visitor驗證程式166
8.4編寫自定義的驗證程式173
8.4.1註冊176
8.4.2示例177
8.5利用Validateable接口實現編程驗證180
8.6小結182
第9章訊息處理與國際化183
9.1地區和Java資源綁定183
9.2Struts中的國際化支持185
9.3text標籤188
9.4i18n標籤191
9.5以手動方式選擇一個資源包193
9.6小結195
第10章ModelDriven和Preparable攔截器196
10.1把動作與模型隔離開196
10.2ModelDriven攔截器197
10.3Preparable攔截器201
10.4小結206
第11章持久層207
11.1DAO模式207
11.1.1DAO模式的最簡單實現208
11.1.2使用DAO接口的DAO模式208
11.1.3使用AbstractFactory模式的DAO模式209
11.2實現DAO模式209
11.2.1DAO接口和DAOBase類210
11.2.2EmployeeDAO類213
11.2.3EmployeeDAOMySQLImpl類214
11.2.4DAOFactory類218
11.2.5EmployeeManager類219
11.2.6運行app11a應用程式220
11.3Hibernate221
11.4小結221
第12章檔案的上傳222
12.1檔案上傳概述222
12.2在Struts里上傳檔案223
12.3FileUpload攔截器224
12.4上傳單個檔案示例225
12.5上傳多個檔案示例227
12.6小結230
第13章檔案的下載231
13.1檔案下載概述231
13.2Stream結果類型232
13.3檔案下載功能的編程實現235
13.4小結238
第14章提高Struts應用程式的安全性239
14.1用戶和角色239
14.2編寫安全策略240
14.2.1保護資源240
14.2.2指定登錄方法241
14.3身份驗證方法242
14.3.1使用基本身份驗證方法243
14.3.2使用基於表單的身份驗證方法245
14.4隱藏資源247
14.5Struts安全配置248
14.6以編程方式提高安全性250
14.6.1getAuthType方法250
14.6.2isUserInRole方法250
14.6.3getUserPrincipal方法251
14.6.4getRemoteUser方法251
14.7小結251
第15章防止重複提交252
15.1標記管理252
15.2使用Token攔截器253
15.3使用TokenSession攔截器256
15.4小結257
第16章調試與性能分析258
16.1debug標籤258
16.2Debugging攔截器259
16.3性能分析261
16.4小結262
第17章進度條263
17.1ExecuteandWait攔截器263
17.2使用ExecuteandWait攔截器264
17.3使用一個自定義的“等待”頁面265
17.4小結266
第18章定製攔截器267
18.1Interceptor接口267
18.2編寫一個自定義的攔截器268
18.3使用DataSourceInjectorInterceptor攔截器269
18.4小結273
第19章定製結果類型274
19.1概述274
19.2編寫一個自定義的結果類型274
19.3使用新的結果類型277
19.4小結279
第20章Velocity280
20.1概述280
20.2Velocity隱式對象281
20.3標籤281
20.4Velocity示例282
20.5小結284
第21章FreeMarker285
21.1概述285
21.2FreeMarker標籤286
21.3示例287
21.4小結289
第22章XSLT結果類型290
22.1概述290
22.2XSLT結果類型292
22.3示例294
22.4小結295
第23章外掛程式296
23.1概述296
23.2從哪裡獲得外掛程式296
23.3編寫一個自定義的外掛程式296
23.4使用Captcha外掛程式297
23.5小結300
第24章Tiles外掛程式301
24.1JSPinclude指令/標籤的不足302
24.2Tiles布局和定義303
24.2.1布局頁面303
24.2.2Tiles定義304
24.3StrutsTiles外掛程式305
24.4StrutsTiles示例306
24.5小結309
第25章jfreechart外掛程式310
25.1JFreeChartAPI310
25.1.1JFreeChart類310
25.1.2Plot抽象類310
25.2使用標準的外掛程式311
25.3使用BrainySoftwareJFreeChart外掛程式313
25.4小結315
第26章零配置316
26.1準備工作316
26.2註解317
26.2.1@Result註解317
26.2.2@Results註解318
26.2.3@Namespace註解318
26.2.4@ParentPackage註解319
26.3CodeBehind外掛程式319
26.4小結321
第27章Ajax322
27.1Ajax概述322
27.2Dojo的事件系統323
27.3使用StrutsDojo外掛程式324
27.4head標籤324
27.5div標籤325
27.5.1示例程式1326
27.5.2示例程式2326
27.5.3示例程式3327
27.6a標籤328
27.7submit標籤330
27.8bind標籤331
27.9datetimepicker標籤333
27.10tabbedpanel標籤334
27.11textarea標籤336
27.12autocompleter標籤337
27.12.1示例程式1339
27.12.2示例程式2339
27.12.3示例程式3340
27.13tree和treenode標籤341
27.13.1示例程式1342
27.13.2示例程式2343
27.14小結345
附錄AStruts配置346
附錄BJSPEL語言361
附錄CJava註解370
……