- JavaWeb整合開(kāi)發(fā)實(shí)例精通:Struts+Hibernate+Spring
- 閆術(shù)卓 吳峻申
- 601字
- 2018-12-31 14:45:32
1.2 Struts 2簡(jiǎn)介
Struts 2應(yīng)該說(shuō)是第二代實(shí)現(xiàn)MVC模式的Web項(xiàng)目開(kāi)發(fā)框架。它是以攔截器先攔截HTTP請(qǐng)求,在進(jìn)入MVC模式中的"C"(就是控制器)部分前,對(duì)HTTP請(qǐng)求中包含的數(shù)據(jù)做校驗(yàn)、字符編碼轉(zhuǎn)化等操作,由于這些操作和業(yè)務(wù)邏輯關(guān)系不是很大,所以提前做這些事情,也讓控制器可以著重處理HTTP請(qǐng)求和業(yè)務(wù)邏輯之間轉(zhuǎn)發(fā)、處理等控制功能的實(shí)現(xiàn)。
這就體現(xiàn)了“松耦合”的開(kāi)發(fā)理念,讓W(xué)eb項(xiàng)目各部分都發(fā)揮自己負(fù)責(zé)的功能,而又不互相牽涉和糾纏。開(kāi)發(fā)人員進(jìn)行修改、新增等功能時(shí)只需關(guān)心被開(kāi)發(fā)的部分,而不需要去關(guān)心其他部分。
Struts 2按照技術(shù)細(xì)節(jié)劃分,主要分為以下幾塊。
●標(biāo)簽庫(kù):在視圖中運(yùn)用這些標(biāo)簽來(lái)實(shí)現(xiàn)網(wǎng)頁(yè)上各種格式的顯示。
●攔截器:HTTP請(qǐng)求在進(jìn)入控制器部分執(zhí)行前先執(zhí)行攔截器中的功能。
●FilterDispatcher和Action:接收HTTP請(qǐng)求,根據(jù)Action的ActionMapper決定調(diào)用Action哪些方法。
●Struts 2配置文件:定義控制轉(zhuǎn)發(fā)流程,每個(gè)Action類的處理和結(jié)果數(shù)據(jù)如何導(dǎo)航到相應(yīng)的表示界面都由它定義。
●OGNL和類型轉(zhuǎn)化:在表示界面將包含數(shù)據(jù)的Java對(duì)象進(jìn)行類型轉(zhuǎn)化,顯示出符合頁(yè)面規(guī)則的數(shù)據(jù)格式。
●Struts 2校驗(yàn)規(guī)則:對(duì)數(shù)據(jù)輸入的嚴(yán)格定義,保證沒(méi)有垃圾數(shù)據(jù)和不符合項(xiàng)目需求的數(shù)據(jù)。
●國(guó)際化和本地化:針對(duì)字符編碼的轉(zhuǎn)化,讓W(xué)eb項(xiàng)目顯示各種語(yǔ)言版本。
●SiteMesh頁(yè)面布局:和以前的IFrame以及Struts中的tiles相類似的技術(shù)。使用插件式開(kāi)發(fā)模式讓其和Struts 2形成一個(gè)完整實(shí)體,支持Web項(xiàng)目中的頁(yè)面布局。
下面針對(duì)這些具體細(xì)節(jié)做一下初步概念的介紹,希望初學(xué)者或入門者能對(duì)Struts 2有一個(gè)完整的認(rèn)識(shí)。
1.2.1 標(biāo)簽庫(kù)介紹
Struts 2的標(biāo)簽庫(kù)和Struts的標(biāo)簽庫(kù)一樣,也是通過(guò)標(biāo)簽定義文件,也就是后綴名為tld的文件在JSP頁(yè)面的定義,然后在JSP頁(yè)面中調(diào)用這些標(biāo)簽進(jìn)行表示層代碼的開(kāi)發(fā)。它主要分為下列幾大類。
●控制標(biāo)簽:該類標(biāo)簽是用來(lái)控制那些在視圖中最終顯示的信息,也封裝了在視圖中有可能根據(jù)未來(lái)需求需要調(diào)用的數(shù)據(jù)集合。
●數(shù)據(jù)標(biāo)簽:該類標(biāo)簽可以修改那些動(dòng)態(tài)生成的數(shù)據(jù)信息,例如Action執(zhí)行后的返回結(jié)果,本地化或國(guó)際化的文本,導(dǎo)航指向的URL和鏈接等。而且該類標(biāo)簽還能為開(kāi)發(fā)者提供調(diào)試信息。
●表單標(biāo)簽:該類標(biāo)簽將原有HTML標(biāo)簽進(jìn)行了封裝,很多HTML標(biāo)簽都可以轉(zhuǎn)為相應(yīng)的表單標(biāo)簽,包括CheckBox、日期、下拉列表等。
●非表單標(biāo)簽:該類標(biāo)簽雖然也是可以用來(lái)表示表單,但和構(gòu)成表單的標(biāo)簽不同。主要包含錯(cuò)誤信息、樹(shù)形菜單、選擇頁(yè)等。
- Learning Single:page Web Application Development
- JavaScript前端開(kāi)發(fā)模塊化教程
- TypeScript Blueprints
- C# Programming Cookbook
- 算法基礎(chǔ):打開(kāi)程序設(shè)計(jì)之門
- 微服務(wù)設(shè)計(jì)原理與架構(gòu)
- C#程序設(shè)計(jì)基礎(chǔ):教程、實(shí)驗(yàn)、習(xí)題
- R Data Analysis Cookbook(Second Edition)
- Fast Data Processing with Spark(Second Edition)
- Windows Phone 8 Game Development
- Kotlin Programming By Example
- Java并發(fā)實(shí)現(xiàn)原理:JDK源碼剖析
- Python滲透測(cè)試編程技術(shù):方法與實(shí)踐(第2版)
- Python面向?qū)ο缶幊蹋ǖ?版)
- The Python Apprentice