Struts2入門基礎小結!

Struts2 框架介紹
什麼是 struts2 框架,學習 struts2 框架的核心。Struts2 是一個基於 MVC 設計模式的 Web 應用框架,它本質上相當於一個
servlet,在 MVC 設計模式中,Struts2 作爲控制器(Controller)來建立模型與視圖的數據交互,Struts2=struts1+webwork
 .

怎樣使用 strtuts2 框架?
首先要上網下載它的 jar 包。
步驟:
1.導入相關的 jar 文件
2.需要在 web.xml 文件中配置一個 Filter(只有配置了它纔可以使用 struts2 框架)
3.struts.xml 配置
4.創建 Action 來完成邏輯操作


Struts2 框架執行流程

對於 struts2 框架它的源代碼我們主要使用三部分

1. struts2 核心部分源代碼 org.apache.struts2xxsrc\core\src\main\java
2. struts2 的 xwork 核心部分源代碼src\xwork-core\src\main\java\com\opensymphony\xwork2
3. struts2 的插件的源代碼src\plugins


Struts2 配置文件加載順序

第一個加載的是 default.properties 文件
位置:struts2-core.jar 包 org.apache.struts2 包下
作用:主要是聲明瞭 struts2 框架的常量
第二個加載的是一批配置文件
Struts-default.xml
位置:struts2-corl.jar
作用:聲明瞭 interceptor result bean
Struts-plugin.xml
位置:在 struts2 的插件包中
作用:主要用於插件的配置聲明
Struts.xml
位置:在我們自己的工程中
作用:用於我們自己工程使用 struts2 框架的配置
第三個加載的是自定義的 struts.properties
位置:都是在自己工程的 src 下
作用:定製常量
第四自定義配置提供
第五加載的是 web.xml 配置文件
主要是加載 struts2 框架在 web.xml 文件中的相關配置.
第六 bean 相關配置
重點掌握:
1.Default.properties
2.Struts-default.xml
3.Struts-plugin.xml
4.Struts.xml
5.web.xml

struts.xml 文件配置

package 配置

1.name 屬性 作用:定義一個包的名稱,它必須唯一
2.namespace 屬性 作用:主要是與 action 標籤的 name 屬性聯合使用來確定一個 action的訪問路徑
3.extends 屬性 作用:指定繼承自哪個包。一般值是 struts-defaultstruts-default 包是在 struts-
         default.xml 文件中聲明的
4.abstruct 屬性 它代表當前包是一個抽象的,主要是用於被繼承

action 配置

1.name屬性 作用:主要是與package的namespace聯合使用來確定一個action的訪問路徑
2.class 屬性 作用:用於指示當前的 action 類
3.method 屬性 作用:用於指示當前的 action 類中的哪個方法執行

result 配置

它主要是用於指示結果視圖

1.name 屬性 作用是與 action 類的 method 方法的返回值進行匹配,來確定跳轉路徑

2.type 屬性 作用是用於指定跳轉方式

常量配置
default.properties 文件中定義了 struts2 框架常用常量 .
問題:我們怎樣可以定義常量
1.可以在 src 下創建一個 struts.properties 配置文件
2.可以在 web.xml 文件中配置
3.可以直接在 struts.xml 文件中定義常量 (推薦)

注意:後加載的配置文件中的常量會將先加載的常量覆蓋


Struts2 的 的 Action

Action 類創建方式( 三種)
1. 創建一個 pojo 類
Pojo(plani Ordinary java object)簡單的 java 對象
Pojo 類就是沒有實現任何接口沒有繼承任何類
優點:無耦合
缺點:所有的功能都要自己完成
2. 創建一個類實現一個 Action 接口
com.opensymphony.xwork2.Action

在 Action 接口中定義了五個常量,一個 execute 方法
五個常量:它們是默認的五個結果視圖<result name=””>:
ERROR : 錯誤視圖
INPUT: 它是 struts2 框架中 interceptor 中發現問題後會訪問的一個視圖
LOGIN:它是一個登錄視圖,可以在權限操作中使用
NONE:它代表的是 null,什麼都不做(也不會做跳轉操作)
SUCCESS:這是一個成功視圖
優點:耦合度低
缺點:還是需要自己來完成功能
3. 創建一個類繼承 ActionSupport 類
com.opensymphony.xwork2.ActionSupport
ActionSupport 類也實現了 Action 接口。

我們在開發中一般會使用這種方案:
優點:具有豐富的功能,例如 表單校驗 錯誤信息設置 國際化
缺點:耦合度高

  Action 的訪問方式
1.直接通過<action>標籤來配置,通過 method 來指定訪問的方法,如果 method 沒有,默認
   訪問的是 execute 方法。
  2.簡化的 action 訪問方式,可以使用*通配符來訪問。這種方式的缺點:不建議使用過多的*號,它

   帶來程序閱讀障礙,不便於理解使用*來簡化操作方案,它對名稱規範必須進行一個統一。

 擴展--動態方法調用(個人不建議使用動態方法調用)


Struts2 框架封裝數據
主要解決的問題:是在 action 中如果獲取請求參數
主要有兩種方式:
1.屬性驅動
a.直接在 action 類中提供與請求參數匹配屬性,提供 get/set 方法
b.在 action 類中創始一個 javaBean,對其提供 get/set ,在請求時頁面上要進行修改,例如    user.username user.password ,要使用 ognl 表達式
以上兩種方式的優缺點:
第一種比較簡單,在實際操作我們需要將 action 的屬性在賦值給模型(javaBean)去操作
第二種:不需要在直接將值給javaBean過程,因爲直接將數據封裝到了javaBean中。它要

    求在頁面上必須使用 ognl 表達式,就存在頁面不通用問題。
  2.模型驅動
步驟:
1.讓 Action 類要實現一個指定接口 ModelDriven
2.實例化模型對象(就是要 new 出來 javaBean)
3.重寫 getModel 方法將實例化的模型返回。

發佈了36 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章