1. 程式人生 > >Struts2學習筆記系列之環境搭建

Struts2學習筆記系列之環境搭建

1.前言

一直在學習javaweb方面的知識,斷斷續續的學到了struts2,深感java框架的博大精深,自己的水平有限(菜雞),本著好記性不如爛筆頭的原則,打算把自己學到的東西寫一篇部落格,就當複習以及以後查詢的筆記資料了。

2.環境搭建

1.建立一個web工程
2.匯入需要的jar包

  • 1、開啟下載下來的struts-2.3.24開發包,找到apps目錄下的struts2-blank.war,解壓,賦值其lib下的jar檔案到自己的專案的lib下。
    PS:開發包的lib目錄下有struts2的全部jar包,開啟可以看到有近百個(具體沒數),這無疑是比較恐怖的,根本不需要這麼多,故可採用上述方法,其餘的若有需要再到lib目錄下拷貝即可。

3.新增dtd約束:在寫struts.xml檔案時,如果有xml的提示,無疑是非常方便的,這就要匯入struts-2.3.dtd包,讓系統自動有提示功能,步驟如下:

這裡寫圖片描述

這裡寫圖片描述

4.書寫Action類

public class HelloAction {
    public String Hello(){
        System.out.println("Hello Action!");
        return "success";
    }
}

5.新增struts.xml檔案:src目錄下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- i18n:國際化,解決post提交亂碼問題 --> <constant name="struts.i18n.encoding" value="UTF-8"></constant> <!-- 指定訪問action時的字尾名 -->
<constant name="struts.action.extension" value="action"></constant> <!-- 指定struts2是否以開發模式執行 1.熱載入主配置.(不需要重啟即可生效) 2.提供更多錯誤資訊輸出,方便開發時的除錯 --> <constant name="struts.devMode" value="true"></constant> <!-- package:將Action配置封裝.就是可以在Package中配置很多action. name屬性: 給包起個名字,起到標識作用.名字任意.不與其他包名重複即可. namespace屬性:給action的訪問路徑中定義一個名稱空間 extends屬性: 繼承一個 指定包,一般為固定寫法:struts-default abstract屬性:包是否為抽象的; 標識性屬性.標識該包不能獨立執行.專門被繼承,預設為false,一般不寫 --> <package name="hello" namespace="/hello" extends="struts-default"> <!-- action元素:配置action類 name屬性: 決定了Action訪問資源名. class屬性: action的完整類名 method屬性: 指定呼叫Action中的哪個方法來處理請求 --> <action name="HelloAction" class="com.qiu.structs2.action.HelloAction" method="Hello" > <!-- result元素:結果配置 name屬性: 標識結果處理的名稱.與action方法的返回值對應. type屬性: 指定呼叫哪一個result類來處理結果,預設使用轉發. 標籤體:填寫頁面的相對路徑 --> <result name="success" type="dispatcher">/hello.jsp</result> </action> </package> </struts>

6.在web.xml中配置struts的核心過濾器

<!-- struts2核心過濾器 -->
<filter>
    <filter-name>struts2</filter-name>
    <filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

7.至此,struts2的環境就算是搭建好了,同時也有了一個最基本的測試類HelloAction,現在就可以測試一下了。
這裡寫圖片描述

3.配置相關

1.常量配置

  • struts2預設常量配置位置

這裡寫圖片描述

  • 方式1:在src->struts.xml中配置(常用,推薦)

這裡寫圖片描述

  • 方式2:在src下建立struts.properties

這裡寫圖片描述

  • 方式3:在專案的web.xml中

這裡寫圖片描述

  • 載入順序:方式1-方式2-方式3,若後邊的與前邊的衝突,則會覆蓋前邊的。

配置進階:動態方法呼叫

  • 方式1:引數配置方式

這裡寫圖片描述

這裡寫圖片描述

  • 方式2:萬用字元方式

這裡寫圖片描述

這裡寫圖片描述

4.Action類的書寫方式

方式1

public class HelloAction {
    public String Hello(){
        System.out.println("Hello Action!");
        return "success";
    }
}

方式2

public class Hello1Action implements Action{
    public String execute() throws Exception {
        System.out.println("Hello1 Action!");
        return SUCCESS;
    }
}

方式3(推薦)

public class Hello2Action extends ActionSupport{
    public String execute() throws Exception {
        System.out.println("Hello2 Action!");
        return SUCCESS;
    }
}

5.總結

以上就是本人學習struts2的入門心得,水平有限,歡迎批評指正,謝謝!