Struts2學習總結(一)
Struts2學習總結(一)
Struts2 概述
- Apache Struts2最初被稱為WebWork 2,它是一個簡潔的、可擴充套件的框架,可用於建立企業級Java web應用程式。設計這個框架是為了從構建、部署、到應用程式維護方面來簡化整個開發週期
- 對於MVC三層結構中應用於javaEE的web層框架。
- Struts2 在 Struts1 和 webwork 基礎之上發展的全新的框架
- Struts2 使用 過濾器 action 解決web 請求servlet方便維護管理的一些基本操作 例如:增刪改查 (個人理解)
Struts2 框架入門
- 匯入jar包
下載Struts2 - all.zip 解壓
(1)在lib中有jar包,不能把這些jar都匯入到專案中
(2)到apps目錄裡面,找到示例程式,從示例程式複製jar包(app目錄:放置Struts2官方的示例檔案)
- 第二步 建立action
public class HelloAction {
// 訪問servlet 都會執行 serivce 方法
// 訪問action 都會執行 execute 方法 ( 預設訪問 )
public String execute(){
return 'ok';
}
}
- 配置action類訪問路徑
(1)建立struts2核心配置檔案
- 核心配置檔名稱和位置是固定的
- 位置必須在src下面,名稱 struts.xm
(2)引入dtd約束 (apps 目錄下的示例檔案找)
(3)action配置
訪問路徑:
http://127.0.0.1/struts2/hello.action
第四步 配置struts2過濾器
(Strust2自帶過濾器放到 web.xml )
Struts2 執行過程
1 過濾器在伺服器啟動時候建立,建立過濾器時候執行init方法
(1)在init方法中主要載入配置檔案
- 包含自己建立的配置檔案和struts2自帶配置檔案
** struts.xml
** web.xml
Struts2的核心配置檔案
1 名稱和位置固定的 (src 資料夾下)
2 在配置檔案中主要三個標籤 package、action、result,標籤裡面的屬性
標籤package
1 類似於程式碼包,區別不同的action(或者action塊 ),要配置action,必須首先寫package標籤,在package裡面才能 配置action
2 package標籤屬性
(1)name屬性 (區分不同的package)
- name屬性值根功能本身沒有關係的,
- 在一個配置檔案中可以寫多個package標籤,name屬性值不能相同的
(2)extends屬性
- 屬性值固定的,struts-default
- 寫了這個屬性之後,在package裡面配置的類具有action功能
(3)namespace屬性
- namespace屬性值和action標籤裡面的name屬性值構成訪問路徑 一般為 ‘/’
標籤action
1 action標籤配置action訪問路徑
2 action標籤屬性
(1)name屬性
- namespace屬性值和action標籤裡面的name屬性值構成訪問路徑
- 在package標籤裡面寫多個action標籤,但是action的name屬性值不能相同的
(2)class屬性
- action全路徑
(3)method屬性
- 比如在action裡面預設執行的方法execute方法,但是在action裡面寫其他的方法
- 讓action裡面多個方法執行,使用method進行配置
Struts2常量配置
1 struts2框架,幫我們實現一部分功能,struts2裡面有常量,在常量裡面封裝一部分功能
2 struts2預設的常量位置(記住)
3 修改struts2預設常量值
(1)常用的方式
- 在struts.xml中進行配置
(2)還有兩種方式(瞭解)
- 在src下面建立 struts.properties,進行修改
- 在web.xml進行配置
4 最常用常量
分模組開發
1 單獨寫配置檔案,把配置檔案引入到核心配置檔案中
Action編寫方式 (重點)
1 action編寫有三種方式
第一種 建立普通類,這個不繼承任何類,不實現任何介面
public class HelloAction{
//寫其他方法
}
第二種 建立類,實現介面 Action
public class UserAction impletments Action {
@override
public String execute() throws Exception{
return SUCCESS ;
}
}
第三種 建立類,繼承類 ActionSupport(一般使用)
public class HelleAction extends ActionSupport{
}
訪問action的方法(重點)
1 有三種方式實現
第一種 使用action標籤的method屬性,在這個屬性裡面寫執行的action的方法
第二種 使用萬用字元方式實現
第三種 動態訪問實現(不用)
2 演示錯誤
(1)如果action方法有返回值,在配置檔案中沒有配置,出現錯誤
(2)在action裡面的方法有返回值,如果有返回值時候型別必須是String
(3)action裡面的方法可以沒有返回值,沒有返回值時候,在result標籤不需要配置
- 把方法寫成void
- 讓返回值,返回 ”none”