Struts2學習筆記系列之環境搭建
阿新 • • 發佈:2018-12-10
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的入門心得,水平有限,歡迎批評指正,謝謝!