Struts2的配置文件方法小結(jié)
Struts2
JAVA基礎(chǔ)學(xué)完,肯定是要面臨三大框架的學(xué)習(xí)的,作為初學(xué)者,了解三大框架的原理,設(shè)計目的是首要任務(wù),只有在把握了框架的設(shè)計目的以后,才能有針對性的取學(xué)習(xí)使用框架,這里就要介紹下strue2框架了。
什么是Struts2?
Struts2 是一個非常優(yōu)秀的MVC框架,基于Model2 設(shè)計模型
由傳統(tǒng)Struts1和WebWork兩個經(jīng)典框架發(fā)展而來
Strust2 核心功能
(1)允許POJO(Plain Old Java Objects)對象 作為Action
(2)Action的execute 方法不再與Servlet API耦合,更易測試
(3)支持更多視圖技術(shù)(JSP、FreeMarker、Velocity)
(4)基于Spring AOP思想的攔截器機制,更易擴展
(5)更強大、更易用輸入校驗功能
struts2 配置文件的 result 節(jié)點
result 節(jié)點是 action 節(jié)點的子節(jié)點,他代表著 action 方法執(zhí)行后可能去的一個目的地;
Action 方法名和 action 節(jié)點的 method 屬性相對應(yīng);
每個 Action 方法都會返回一個 String 類型的值且一一對應(yīng) result 節(jié)點的 name 屬性,而 result 節(jié)點根據(jù) name 屬性值決定響應(yīng)不一樣的結(jié)果;
result 節(jié)點擁有兩個屬性,name(結(jié)果的名字,即 action 方法的返回值,默認為 SUCCESS) 和 type(響應(yīng)結(jié)果的類型,默認值為 dispatcher)

如上圖中圈 1 所, result 節(jié)點的值代表著此次 struts2 請求將會去的一個目的地
result 節(jié)點的結(jié)果類型(type)
dispatcher(轉(zhuǎn)發(fā))
dispatcher 是 struts2 框架的默認結(jié)果類型,也是最常用的結(jié)果類型,該類型有一個默認的參數(shù) location,一般情況省略,如下兩種寫法等價:


dispatcher 結(jié)果類型將控制權(quán)轉(zhuǎn)發(fā)給應(yīng)用程序中的指定資源,若需要把控制權(quán)轉(zhuǎn)發(fā)給 一個外部資源,則應(yīng)使用 redirect 結(jié)果類型
redirect(重定向)
- redirect 結(jié)果類型將把響應(yīng)重定向到另一個資源,而不是轉(zhuǎn)發(fā)給該資源
- redirect 也擁有默認參數(shù) location,同時還有一個 parse 參數(shù),用來表明是否把 location 值視為一個 OGNL 表達式來解釋,默認值為 true
chain (轉(zhuǎn)發(fā)到一個 action)
- 指定 result 結(jié)果響應(yīng)類型為 chain,其可以用來構(gòu)成一個 action 鏈,即前一個 action 把控制權(quán)轉(zhuǎn)發(fā)給后一個 action,而前一個 action 的狀態(tài)在后一個 action 中依然保存
- chain 可接受的參數(shù)有 actionName 和 method,其中 actionName 指定目標(biāo) action 的名字,它是默認屬性,method 指定目標(biāo) action 的方法,默認值為 execute
redirectAction (重定向到一個 action)
- redirectAction 把響應(yīng)重定向到另一個 action,同時擁有默認參數(shù) actionName
- 重定向到一個 action 可以使用 redirect 簡潔的進行實現(xiàn),但是轉(zhuǎn)發(fā)到一個 action 不能使用 dispatcher 實現(xiàn),如下兩種寫法等價


通配符映射
struts2 提供通配符映射機制將多個彼此相似的映射關(guān)系簡化為一個映射關(guān)系
通配符映射規(guī)則
- 若一個 action 請求找到多個匹配的 action,沒有通配符的那個將會獲勝
- 若找不到指定的 action,struts2 將會嘗試把這個 URL 與任何一個包含著通配符的動作匹配
- 被通配符匹配到的 URI 字符串的子串可以利用 {1} {2} 來引用,比如四個 action 分別為
- update-hello、query-hello、delete-hello、save-hello 那么在 struts.xml 文件中的 action
- 的 name 屬性則可以為 name = -hello,且在整個 action 節(jié)點中可以用 {1} 代表 所占用
- 的字符串,class 中也可以使用 {1} 來代表類名
- {0} 匹配整個 URL
- 若 struts2 找到帶有通配符的匹配有多個,則按先后順序進行匹配

如圖所示,在第一個 package 中,* 可代表第二個 package 中的他們四個。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Spring Cloud學(xué)習(xí)教程之DiscoveryClient的深入探究
這篇文章主要給大家介紹了關(guān)于Spring Cloud學(xué)習(xí)教程之DiscoveryClient的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04
又又叕出BUG啦!理智分析Java NIO的ByteBuffer到底有多難用
網(wǎng)絡(luò)數(shù)據(jù)的基本單位永遠是byte,Java NIO提供ByteBuffer作為字節(jié)的容器,但該類過于復(fù)雜,有點難用.本篇文章就帶大家簡單了解一下 ,需要的朋友可以參考下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錯誤的相關(guān)資料,需要的朋友可以參考下2017-02-02
Springboot整合SpringSecurity的完整案例詳解
Spring Security是基于Spring生態(tài)圈的,用于提供安全訪問控制解決方案的框架,Spring Security登錄認證主要涉及兩個重要的接口 UserDetailService和UserDetails接口,本文對Springboot整合SpringSecurity過程給大家介紹的非常詳細,需要的朋友參考下吧2024-01-01
Java ES(Elasticsearch) 中的and 和 or 查
Elasticsearch 是一個分布式、高擴展、高實時的搜索與數(shù)據(jù)分析引擎,es中match查詢中,查詢字符串分詞后,默認是or或者的關(guān)系,這篇文章主要介紹了ES 中的and 和 or 查詢,需要的朋友可以參考下2022-11-11

