struts2基礎知識

2021-06-20 19:54:48 字數 3694 閱讀 4380

struts2是在webwork2的基礎上發展而來的,和struts1一樣,struts2也是屬於mvc框架,但是struts2不是struts1的公升級版,儘管在名字上面很讓人這麼覺得;

struts2中的action是執行緒安全的,struts1的執行緒是執行緒不安全的;

strust2的優點:

1,無侵入式:struts2不和struts1一樣,struts2不依賴於servletapi;

2,struts2的***,利用***可以進行aop程式設計,如許可權的控制

3,struts2提供了型別轉換器

4,支援多種表現層技術:jsp,freemarker,velocity等

5,struts2的校驗功能可以對指定的方法校驗

6,提供了全域性範圍,包範圍和action訪問的國際化資源檔案管理實現

1,拷貝相應的jar包

struts2-core-2.x.x.jar: struts2框架的核心類庫

xwork-2.x.x.jar:xwork類庫,struts2在其上構建

ognl-2.x.x.jar:物件導航語言,struts2通過其讀寫物件的屬性

freemarker-2.x.x.jar:struts2的ui標籤模板使用freemarker編寫

commons-logging-1.x.x.jar:asf出品的日誌包,struts 2框架使用這個日誌包來支援log4j和jdk 1.4+的日誌記錄。

commons-fileupload-1.2.1.jar 檔案上傳元件,2.1.6版本後必須加入此檔案

commons-io-1.x.x.jar 用於檔案上傳是的乙個工具類的實現

2,在類資料夾下建立struts.xml配置檔案

<?

xml 

version="1.0" 

encoding="utf-8"

?>

doctype 

struts 

public

"-//apachesoftware foundation//dtd struts configuration 2.0//en"

"">

<

struts

>

這裡要注意的是

namespace

裡面要以/開頭

-->

<

package 

name="… " 

namespace="/… " 

extends="struts-default"

>

<

action 

name="…" 

class="… " 

method="…" 

>

<

result 

name="… "

>…. 

result

>

action

>

package

>

配置多個配置檔案

-->

struts

>

3,在web.xml中配置

<

filter

>

<

filter-name

>struts

filter-name

>

<

filter-class

>org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter

filter-class

>

filter

>

<

>

<

filter-name

>struts

filter-name

>

<

url-pattern

>*.action

url-pattern

>

<

dispatcher

>request

dispatcher

>

<

dispatcher

>forward

dispatcher

>

>

注意,在struts2中是配置過濾器,但是在struts1中是使用的servlet的配置

假如說url位址為:http://localehost:8080//工程名/path1/path2/path3/test.action 那麼

1,首先去找namespace=」/path1/path2/path3」的package下的action

2,如果在上一步找不到,那麼再去找namespace=」/path1/path2」的package下面的action

3,如果上一步還是沒有找到,那麼就去找namespace=」/path1」的package下面的action

4,如果上一步還是沒有找到,那麼就會去預設的package下找,也就是沒有寫namespace屬性的或者寫了namespace=」/」的

5,再找不到,就會在頁面提示找不到action

/web-inf/page/hello.jsp

1>如果沒有為action指定class,預設是actionsupport。

2>如果沒有為action指定method,預設執行action中的execute() 方法。

3>如果沒有指定result的name屬性,預設值為success。

為action中的屬性注入值:

在有的時候,我們要為action裡面的值注入屬性,可以便於以後的修改,比如說配置路徑:

<

action 

name="test2" 

class="hwt.action.demo2action"

method="testtype"

>

/web-inf/upload

<

result 

name="source"

type="plaintext"

>

<

param 

name="location"

>/show.jsp

param

>

<

param 

name="charset"

>utf-8

param

>

result

>

action

>

·dispatcher(預設):**到頁面

·redirect :重定向到頁面,與dispatcher相對應

·chain:**到另乙個action,帶上引數

·redirectaction:重定向到另乙個action,不帶引數

·plaintext:顯示原始檔案內容,例如:當我們需要原樣顯示jsp檔案源**的時候,我們可以使用此型別

/***.jsp

utf-8

Struts2基礎知識整理

struts2是基於mvc設計模式的web框架,這個框架的的核心就是j2ee的過濾器filter,通過filter把所有請求轉交給struts2來處理 要使用struts首先我們先要匯入jar包,同樣的,我把完整的struts分享給大家 再匯入jar包,之後,我們先要配置乙個filter,因為str...

Struts2 學習基礎

struts2主要是將web應用所有的頁面請求統一管理,有自己實現的 相當於 filter mvc的乙個整潔實現。以上為這個demo的大致目錄 對於web的外部包,放在webcontent web inf lib目錄下即可,會自動同步載入到libraries目錄中 這裡用的是struts2.5.14...

有關struts2的知識

struts2 框架有兩個核心的配置檔案,其中 struts.xml 檔案主要負責管理應用中 action 的對映,以及 action 包含的result 第一等。除此之外,struts2 框架還包含乙個 struts.properties 檔案,該檔案定義了 struts2 框架的大量屬性 也被稱...