本書是一本應(yīng)用教程,通過大量實例介紹Struts 2框架應(yīng)用的基本思想、方法和技術(shù),同時配備了相應(yīng)的實踐環(huán)節(jié),鞏固Struts 2應(yīng)用開發(fā)的方法和技術(shù),力圖達(dá)到“做中學(xué),學(xué)中做”。
全書共10章,內(nèi)容包括Struts 2入門、Struts 2的Action、類型轉(zhuǎn)換、攔截器、表達(dá)式語言O(shè)GNL、標(biāo)簽庫、輸入校驗、國際化、文件上傳和下載以及電子商務(wù)平臺的設(shè)計與實現(xiàn)等重要內(nèi)容。書中實例側(cè)重實用性和啟發(fā)性,趣味性強(qiáng),分布合理,通俗易懂,使讀者能夠快速掌握Struts 2框架應(yīng)用的基礎(chǔ)知識、編程技巧以及完整的開發(fā)體系,為實際應(yīng)用打下堅實的基礎(chǔ)。
盡管已經(jīng)有許多與Struts 2框架有關(guān)的書籍,但大部分書籍非常注重知識的系統(tǒng)性,使得知識體系結(jié)構(gòu)過于全面、龐大,不太適合作為高校計算機(jī)相關(guān)專業(yè)的教材。本書的重點不是簡單地介紹Struts 2框架的基礎(chǔ)知識,而是大量的實例與實踐環(huán)節(jié)。讀者通過本書可以快速地掌握Struts 2框架技術(shù),提高開發(fā)Struts 2應(yīng)用的能力。全書共10章,具體內(nèi)容如下:
第1章介紹MVC的設(shè)計思想,講解Struts 2應(yīng)用開發(fā)框架的構(gòu)建。
第2章講解Action的編寫方式、接收用戶數(shù)據(jù)的方式、在Action中訪問Servlet API以及Action中常見的結(jié)果類型,是本書的重點內(nèi)容之一。
第3章講解Struts 2的類型轉(zhuǎn)換,包括內(nèi)置的類型轉(zhuǎn)換器和自定義類型轉(zhuǎn)換器。
第4章講解Struts 2的攔截器,包括內(nèi)置的攔截器和自定義攔截器。
第5章講解表達(dá)式語言O(shè)GNL,包括OGNL語法基礎(chǔ)、值棧的概念以及OGNL表達(dá)式的應(yīng)用。
第6章講解Struts 2標(biāo)簽,包括非UI標(biāo)簽和UI標(biāo)簽,是本書的重點內(nèi)容之一。
第7章講解Struts 2框架的輸入校驗體系,包括手動編程校驗和校驗框架校驗。
第8章講解Struts 2國際化的實現(xiàn)方法,包括JSP頁面國際化、校驗信息國際化以及Action信息國際化等內(nèi)容。
第9章講解使用Struts 2框架進(jìn)行文件的上傳與下載,包括單文件上傳、多文件上傳以及文件下載。
第10章是本書的重點內(nèi)容之一,將前面章節(jié)的知識進(jìn)行綜合,講解使用Struts 2框架來開發(fā)一個Web應(yīng)用(電子商務(wù)平臺)的過程。
為了便于教學(xué),本教材配有教學(xué)課件、源代碼以及實踐環(huán)節(jié)與課后習(xí)題的參考答案,讀者可從清華大學(xué)出版社的網(wǎng)站(http://www.tup.com.cn)免費下載。
由于編者水平有限,書中難免會有不足之處,敬請廣大讀者批評指正。
編者
2015年8月
第1章Struts 2入門1
1.1MVC模式1
1.2Struts 2的體系結(jié)構(gòu)2
1.3Struts 2的工作環(huán)境3
1.3.1Struts 2的下載與安裝4
1.3.2使用Eclipse開發(fā)Struts 2的Web應(yīng)用4
1.3.3使用MyEclipse開發(fā)Struts 2的Web應(yīng)用10
1.4第一個Struts 2應(yīng)用14
1.4.1用戶請求頁面14
1.4.2Action實現(xiàn)15
1.4.3配置Action15
1.4.4發(fā)布并運行Web應(yīng)用16
1.4.5struts.xml配置中的包屬性介紹19
1.5實踐環(huán)節(jié)19
1.6本章小結(jié)19
習(xí)題120第2章Struts 2的Action21
2.1Action的創(chuàng)建與配置21
2.1.1Action的創(chuàng)建方式21
2.1.2Action的配置23
2.1.3DMI以及通配符24
2.1.4實踐環(huán)節(jié)26
2.2Action接收請求參數(shù)26
2.2.1使用Action屬性接收參數(shù)26
2.2.2使用DomainModel接收參數(shù)27
2.2.3使用ModelDriven<T>接口接收參數(shù)29
2.2.4實踐環(huán)節(jié)29
2.3Action訪問Servlet API30
2.3.1通過ActionContext30
2.3.2實現(xiàn)RequestAware、SessionAware和ApplicationAware接口32
2.3.3通過ServletActionContext33
2.3.4實現(xiàn)ServletRequestAware接口34
2.3.5實踐環(huán)節(jié)35
2.4struts.xml文件中的include及constant36
2.4.1include的配置36
2.4.2constant的配置36
2.5Action中常見的結(jié)果類型37
2.5.1chain類型37
2.5.2redirectAction類型38
2.5.3redirect類型39
2.5.4dispatcher類型39
2.5.5全局result39
2.5.6實踐環(huán)節(jié)40
2.6包的繼承41
2.7本章小結(jié)42
習(xí)題242第3章Struts 2的類型轉(zhuǎn)換43
3.1類型轉(zhuǎn)換的意義43
3.2Struts 2內(nèi)置的類型轉(zhuǎn)換器45
3.3自定義類型轉(zhuǎn)換器47
3.3.1實現(xiàn)類型轉(zhuǎn)換器50
3.3.2注冊類型轉(zhuǎn)換器52
3.3.3實踐環(huán)節(jié)53
3.4數(shù)組屬性的類型轉(zhuǎn)換器53
3.5集合屬性的類型轉(zhuǎn)換器56
3.6本章小結(jié)58
習(xí)題358第4章Struts 2的攔截器59
4.1攔截器概述59
4.1.1攔截器的原理59
4.1.2攔截器與過濾器的區(qū)別59
4.1.3Struts 2內(nèi)置的攔截器60
4.2攔截器的配置61
4.2.1配置攔截器62
4.2.2攔截器棧63
4.2.3默認(rèn)攔截器63
4.2.4實踐環(huán)節(jié)64
4.3自定義攔截器64
4.3.1實現(xiàn)Interceptor接口65
4.3.2繼承AbstractInterceptor類67
4.3.3繼承MethodFilterInterceptor類67
4.3.4實踐環(huán)節(jié)69
4.4使用自定義攔截器完成權(quán)限驗證71
4.5本章小結(jié)74
習(xí)題474第5章表達(dá)式語言O(shè)GNL76
5.1OGNL簡介76
5.2OGNL基礎(chǔ)76
5.2.1OGNL上下文78
5.2.2值棧81
5.2.3OGNL的訪問83
5.2.4實踐環(huán)節(jié)85
5.3OGNL基本語法85
5.3.1常量86
5.3.2操作符86
5.3.3OGNL表達(dá)式87
5.3.4實踐環(huán)節(jié)91
5.4本章小結(jié)96
習(xí)題596第6章Struts 2中的標(biāo)簽97
6.1標(biāo)簽庫概述97
6.1.1標(biāo)簽的分類97
6.1.2標(biāo)簽的使用97
6.1.3標(biāo)簽的語法97
6.2數(shù)據(jù)標(biāo)簽98
6.2.1action標(biāo)簽99
6.2.2bean標(biāo)簽102
6.2.3date標(biāo)簽103
6.2.4debug標(biāo)簽104
6.2.5include標(biāo)簽105
6.2.6param標(biāo)簽106
6.2.7push標(biāo)簽106
6.2.8set標(biāo)簽107
6.2.9url標(biāo)簽108
6.2.10property標(biāo)簽109
6.2.11實踐環(huán)節(jié)109
6.3流程控制標(biāo)簽110
6.3.1if/elseif/else標(biāo)簽110
6.3.2iterator標(biāo)簽111
6.3.3append標(biāo)簽113
6.3.4generator標(biāo)簽114
6.3.5merge標(biāo)簽115
6.3.6subset標(biāo)簽115
6.3.7sort標(biāo)簽117
6.3.8實踐環(huán)節(jié)118
6.4表單標(biāo)簽118
6.4.1表單標(biāo)簽的通用屬性118
6.4.2checkboxlist標(biāo)簽119
6.4.3combobox標(biāo)簽121
6.4.4doubleselect標(biāo)簽122
6.4.5optiontransferselect標(biāo)簽123
6.4.6select標(biāo)簽125
6.4.7optgroup標(biāo)簽126
6.4.8radio標(biāo)簽127
6.4.9實踐環(huán)節(jié)128
6.5非表單標(biāo)簽129
6.6本章小結(jié)131
習(xí)題6131第7章Struts 2的輸入校驗132
7.1輸入校驗概述132
7.1.1客戶端校驗132
7.1.2服務(wù)器端校驗136
7.2手動編程校驗136
7.2.1重寫validate()方法136
7.2.2重寫validateXxx()方法139
7.2.3輸入校驗的流程140
7.2.4實踐環(huán)節(jié)140
7.3校驗框架校驗141
7.3.1Struts 2內(nèi)置的校驗器141
7.3.2常用內(nèi)置校驗器的配置142
7.3.3校驗Action中所有與execute簽名相同的方法143
7.3.4校驗Action中某個與execute簽名相同的方法145
7.3.5校驗文件搜索順序146
7.3.6實踐環(huán)節(jié)146
7.4本章小結(jié)146
習(xí)題7147第8章Struts 2的國際化148
8.1程序國際化概述148
8.1.1Java國際化的思想148
8.1.2Java支持的語言和國家149
8.1.3Java程序國際化150
8.1.4帶占位符的國際化信息152
8.1.5實踐環(huán)節(jié)152
8.2國際化的步驟153
8.2.1Struts 2中加載全局資源文件153
8.2.2國際化信息輸出153
8.2.3實踐環(huán)節(jié)156
8.3資源文件的加載方式157
8.3.1包范圍資源文件157
8.3.2Action范圍資源文件157
8.3.3臨時指定資源文件157
8.4用戶自定義切換語言示例158
8.5本章小結(jié)162
習(xí)題8163第9章文件的上傳與下載164
9.1Struts 2文件上傳164
9.1.1基于表單的文件上傳164
9.1.2Struts 2單文件上傳165
9.1.3攔截器實現(xiàn)文件過濾168
9.1.4文件上傳的常量配置169
9.1.5Struts 2多文件上傳169
9.1.6實踐環(huán)節(jié)172
9.2Struts 2文件下載172
9.3本章小結(jié)176
習(xí)題9176第10章電子商務(wù)平臺的設(shè)計與實現(xiàn)178
10.1系統(tǒng)設(shè)計178
10.1.1系統(tǒng)功能需求178
10.1.2系統(tǒng)模塊劃分178
10.2數(shù)據(jù)庫設(shè)計179
10.2.1數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計179
10.2.2數(shù)據(jù)邏輯結(jié)構(gòu)設(shè)計181
10.2.3創(chuàng)建數(shù)據(jù)表182
10.3系統(tǒng)管理185
10.3.1導(dǎo)入相關(guān)的jar包185
10.3.2JSP頁面管理185
10.3.3包管理189
10.3.4配置文件管理189
10.4組件設(shè)計195
10.4.1過濾器195
10.4.2攔截器195
10.4.3驗證碼196
10.4.4數(shù)據(jù)庫操作196
10.5后臺管理子系統(tǒng)的實現(xiàn)211
10.5.1Action的實現(xiàn)212
10.5.2管理員登錄218
10.5.3添加商品219
10.5.4查詢商品221
10.5.5修改商品223
10.5.6刪除商品226
10.5.7訂單管理227
10.5.8用戶管理228
10.5.9公告管理229
10.5.10退出系統(tǒng)232
10.6前臺電子商務(wù)子系統(tǒng)的實現(xiàn)232
10.6.1Action的實現(xiàn)233
10.6.2導(dǎo)航欄239
10.6.3銷售排行243
10.6.4人氣排行243
10.6.5最新商品243
10.6.6公告欄243
10.6.7用戶注冊243
10.6.8用戶登錄243
10.6.9商品詳情244
10.6.10關(guān)注商品246
10.6.11購物車246
10.6.12下單249
10.6.13用戶中心251
10.7本章小結(jié)255
參考文獻(xiàn)256