Struts2 配置 知識要點

2021-09-20 08:08:59 字數 3632 閱讀 5897

上篇struts博文已經講解了struts的開發步驟以及執行流程了.....對struts的配置檔案有了了解.....本博文繼續講解struts在配置的時候一些值得要學習的細節...

在講解萬用字元之前,我們來看一下需求.....

現在我的action中有兩個方法,處理登陸和處理註冊:

public class privilegeaction extends actionsupport 

public string register()

}

因此,我們就需要在struts.xml檔案中配置兩個action節點

/index.jsp

/index.jsp

現在我們發現:它們僅僅只有訪問路徑和方法的名稱是不一樣的....但是這卻要多配置乙個action節點,會造成浪費!

於是乎萬用字元就應運而生了...

沒有萬用字元之前,我們是需要配置兩個action的...有了萬用字元,我們是這樣做的:

/index.jsp

解釋一下:

我們來看一下效果:

同理可得,當我們在位址列訪問login的時候,就會執行login的方法

有的時候,我們可能會在package節點中指定namespace命名空間,我們在訪問對應的資源名稱的時候,就需要在前面加入相對應命名空間的值...

比如:命名空間的值為「/user」

/index.jsp

那麼在訪問資源的時候,就需要在專案名稱後邊加上命名空間的值:

現在就有乙個很奇怪妙的事情發生了:在命名空間和資源路徑的中間可新增任意的路徑

但是呢,不能在命名空間之前加入不存在的路徑

其實這就涉及到了struts中路徑的匹配原則,我就拿隨便拿個路徑來舉例子http://localhost:8080/user/a/a/privilege_login

看完這個例子,我們就可以知道為啥在命名空間和資源路徑的中間可新增任意的路徑,而不能在命名空間之前加入不存在的路徑....這就是struts的路徑匹配原則..

struts2預設的訪問字尾是.action......

有的時候,可能根據專案的需要...我想字尾名預設並不是.action,那我該怎麼辦呢??

我們在jar包上找到它的配置檔案...

我們發現它的預設值是action,,

值得注意的是:兩個逗號並不是多餘的

我們不可能是直接修改jar包中的配置檔案的,在struts.xml檔案中提供了constant節點供我們修改struts的常量...

前面已經說了,兩個逗號並不是多餘的。那麼直接在配置檔案中配置action時,會怎麼樣:

也就是說,「,」號能夠匹配空格鍵舉例子說明:

只有動態方法呼叫是我們沒有接觸過的。

那動態方法呼叫是怎麼回事呢???這是樣的:在action節點不配置method屬性,在位址列使用資源名稱!方法名的方式去呼叫業務方法

首先,我們還是來看乙個需求:現在我有兩個action,privilegeaction和categoryaction

public class privilegeaction extends actionsupport 

public string register()

}

public class categoryaction extends actionsupport 

public string find()

}

/index.jsp

/index.jsp

我們發現乙個問題,只要是方法返回值是success,那麼就跳轉到首頁....如果有大量action方法返回的都是success,那麼就要寫很多很多個result節點了..

/index.jsp

乙份相對完整的action節點是這樣子的:

如果我們不寫method的話,預設執行的是execute()方法,execute()方法預設返回值是success

public class bbation extends actionsupport 

}

如果不寫class,class預設執行的action在struts-default有配置什麼時候會不寫class?就是需要跳轉到web-inf目錄下的資源的時候.....這就類似與servlet需要跳轉到web-inf下的資源。【tomcat不允許直接訪問web-inf資源】

/web-inf/index.jsp

文章的目錄導航

struts2搭建開發流程要點

1,web.xml中新增如下struts2的過濾器,即所有的servlet請求都過濾 struts2 spring struts2 org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter struts2 2在src源...

struts2搭建開發流程要點

1,web.xml中新增如下struts2的過濾器,即所有的servlet請求都過濾 struts2 spring struts2 org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter struts2 2在src源...

struts2 註解配置

struts2基於註解的action配置 使用註解來配置action的最大好處就是可以實現零配置,但是事務都是有利有弊的,使用方便,維護起來就沒那麼方便了。要使用註解方式,我們必須新增乙個額外包 struts2 convention plugin 2.x.x.jar。雖說是零配置的,但struts....