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