Struts2的配置文件方法小結(jié)
Struts2
JAVA基礎(chǔ)學(xué)完,肯定是要面臨三大框架的學(xué)習(xí)的,作為初學(xué)者,了解三大框架的原理,設(shè)計(jì)目的是首要任務(wù),只有在把握了框架的設(shè)計(jì)目的以后,才能有針對(duì)性的取學(xué)習(xí)使用框架,這里就要介紹下strue2框架了。
什么是Struts2?
Struts2 是一個(gè)非常優(yōu)秀的MVC框架,基于Model2 設(shè)計(jì)模型
由傳統(tǒng)Struts1和WebWork兩個(gè)經(jīng)典框架發(fā)展而來
Strust2 核心功能
(1)允許POJO(Plain Old Java Objects)對(duì)象 作為Action
(2)Action的execute 方法不再與Servlet API耦合,更易測(cè)試
(3)支持更多視圖技術(shù)(JSP、FreeMarker、Velocity)
(4)基于Spring AOP思想的攔截器機(jī)制,更易擴(kuò)展
(5)更強(qiáng)大、更易用輸入校驗(yàn)功能
struts2 配置文件的 result 節(jié)點(diǎn)
result 節(jié)點(diǎn)是 action 節(jié)點(diǎn)的子節(jié)點(diǎn),他代表著 action 方法執(zhí)行后可能去的一個(gè)目的地;
Action 方法名和 action 節(jié)點(diǎn)的 method 屬性相對(duì)應(yīng);
每個(gè) Action 方法都會(huì)返回一個(gè) String 類型的值且一一對(duì)應(yīng) result 節(jié)點(diǎn)的 name 屬性,而 result 節(jié)點(diǎn)根據(jù) name 屬性值決定響應(yīng)不一樣的結(jié)果;
result 節(jié)點(diǎn)擁有兩個(gè)屬性,name(結(jié)果的名字,即 action 方法的返回值,默認(rèn)為 SUCCESS) 和 type(響應(yīng)結(jié)果的類型,默認(rèn)值為 dispatcher)
如上圖中圈 1 所, result 節(jié)點(diǎn)的值代表著此次 struts2 請(qǐng)求將會(huì)去的一個(gè)目的地
result 節(jié)點(diǎn)的結(jié)果類型(type)
dispatcher(轉(zhuǎn)發(fā))
dispatcher 是 struts2 框架的默認(rèn)結(jié)果類型,也是最常用的結(jié)果類型,該類型有一個(gè)默認(rèn)的參數(shù) location,一般情況省略,如下兩種寫法等價(jià):
dispatcher 結(jié)果類型將控制權(quán)轉(zhuǎn)發(fā)給應(yīng)用程序中的指定資源,若需要把控制權(quán)轉(zhuǎn)發(fā)給 一個(gè)外部資源,則應(yīng)使用 redirect 結(jié)果類型
redirect(重定向)
- redirect 結(jié)果類型將把響應(yīng)重定向到另一個(gè)資源,而不是轉(zhuǎn)發(fā)給該資源
- redirect 也擁有默認(rèn)參數(shù) location,同時(shí)還有一個(gè) parse 參數(shù),用來表明是否把 location 值視為一個(gè) OGNL 表達(dá)式來解釋,默認(rèn)值為 true
chain (轉(zhuǎn)發(fā)到一個(gè) action)
- 指定 result 結(jié)果響應(yīng)類型為 chain,其可以用來構(gòu)成一個(gè) action 鏈,即前一個(gè) action 把控制權(quán)轉(zhuǎn)發(fā)給后一個(gè) action,而前一個(gè) action 的狀態(tài)在后一個(gè) action 中依然保存
- chain 可接受的參數(shù)有 actionName 和 method,其中 actionName 指定目標(biāo) action 的名字,它是默認(rèn)屬性,method 指定目標(biāo) action 的方法,默認(rèn)值為 execute
redirectAction (重定向到一個(gè) action)
- redirectAction 把響應(yīng)重定向到另一個(gè) action,同時(shí)擁有默認(rèn)參數(shù) actionName
- 重定向到一個(gè) action 可以使用 redirect 簡(jiǎn)潔的進(jìn)行實(shí)現(xiàn),但是轉(zhuǎn)發(fā)到一個(gè) action 不能使用 dispatcher 實(shí)現(xiàn),如下兩種寫法等價(jià)
通配符映射
struts2 提供通配符映射機(jī)制將多個(gè)彼此相似的映射關(guān)系簡(jiǎn)化為一個(gè)映射關(guān)系
通配符映射規(guī)則
- 若一個(gè) action 請(qǐng)求找到多個(gè)匹配的 action,沒有通配符的那個(gè)將會(huì)獲勝
- 若找不到指定的 action,struts2 將會(huì)嘗試把這個(gè) URL 與任何一個(gè)包含著通配符的動(dòng)作匹配
- 被通配符匹配到的 URI 字符串的子串可以利用 {1} {2} 來引用,比如四個(gè) action 分別為
- update-hello、query-hello、delete-hello、save-hello 那么在 struts.xml 文件中的 action
- 的 name 屬性則可以為 name = -hello,且在整個(gè) action 節(jié)點(diǎn)中可以用 {1} 代表 所占用
- 的字符串,class 中也可以使用 {1} 來代表類名
- {0} 匹配整個(gè) URL
- 若 struts2 找到帶有通配符的匹配有多個(gè),則按先后順序進(jìn)行匹配
如圖所示,在第一個(gè) package 中,* 可代表第二個(gè) package 中的他們四個(gè)。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Spring Cloud學(xué)習(xí)教程之DiscoveryClient的深入探究
這篇文章主要給大家介紹了關(guān)于Spring Cloud學(xué)習(xí)教程之DiscoveryClient的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04使用@PathVariable接收兩個(gè)參數(shù)
這篇文章主要介紹了使用@PathVariable接收兩個(gè)參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08又又叕出BUG啦!理智分析Java NIO的ByteBuffer到底有多難用
網(wǎng)絡(luò)數(shù)據(jù)的基本單位永遠(yuǎn)是byte,Java NIO提供ByteBuffer作為字節(jié)的容器,但該類過于復(fù)雜,有點(diǎn)難用.本篇文章就帶大家簡(jiǎn)單了解一下 ,需要的朋友可以參考下2021-06-06解決Eclipse配置Tomcat出現(xiàn)Cannot create a server using the selected
這篇文章主要介紹了解決Eclipse配置Tomcat出現(xiàn)Cannot create a server using the selected type錯(cuò)誤的相關(guān)資料,需要的朋友可以參考下2017-02-02Springboot整合SpringSecurity的完整案例詳解
Spring Security是基于Spring生態(tài)圈的,用于提供安全訪問控制解決方案的框架,Spring Security登錄認(rèn)證主要涉及兩個(gè)重要的接口 UserDetailService和UserDetails接口,本文對(duì)Springboot整合SpringSecurity過程給大家介紹的非常詳細(xì),需要的朋友參考下吧2024-01-01Java ES(Elasticsearch) 中的and 和 or 查
Elasticsearch 是一個(gè)分布式、高擴(kuò)展、高實(shí)時(shí)的搜索與數(shù)據(jù)分析引擎,es中match查詢中,查詢字符串分詞后,默認(rèn)是or或者的關(guān)系,這篇文章主要介紹了ES 中的and 和 or 查詢,需要的朋友可以參考下2022-11-11javaweb servlet生成簡(jiǎn)單驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了javaweb servlet生成簡(jiǎn)單驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03