1、package 元素:
1.1 作用:方便分模塊化開發(fā)
1.2 屬性:
name:必須有。唯一。標(biāo)識(shí)一個(gè)包, 好有一定的含義。
extends:繼承。一般要求必須繼承struts-default的包。不繼承該包,將無(wú)法使用struts2提供的一些核心功能。struts-default包在struts-default.xml中有配置,加載自己的struts.xml文件之前,框架就已經(jīng)加載了struts-default.xml配置文件,所以我們可以使用。
abstract:是否是抽象包。讓別人繼承用的。沒(méi)有任何action子元素的包就可以聲明為抽象包。
namespace:名稱空間。默認(rèn)值是"" ,稱之為默認(rèn)名稱空間。取值一般以/開頭。
namespace和的name共同組成了用戶訪問(wèn)的URI.
如下:URI=/user/hello.action
1.3 關(guān)于namesapce的搜索順序問(wèn)題
2、action 元素:
action:定義一個(gè)動(dòng)作
name :動(dòng)作名稱。對(duì)應(yīng)著用戶的請(qǐng)求名稱,默認(rèn)的后綴是action或沒(méi)有后綴
class:框架要實(shí)例化的動(dòng)作類名稱,全名稱。默認(rèn)值是:com.opensymphony.xwork2.ActionSupport。在struts-
default.xml中有定義。
method:執(zhí)行的動(dòng)作類的動(dòng)作方法。默認(rèn)值是execute
3、Struts2中的常用常量
default.properties中有
覆蓋這些常量時(shí),用后面的配置文件覆蓋即可
struts.xml中<constant/> 來(lái)覆蓋
常量的名稱 |
取值 |
說(shuō)明 |
struts.devMode |
true/false |
開啟開發(fā)模式。配置文件修改后會(huì)自動(dòng)加載;出錯(cuò)時(shí)能打印出更加詳細(xì)的錯(cuò)誤說(shuō)明。真正運(yùn)行時(shí)要改為false |
struts.i18n.reload |
true/false |
properties文件修改后會(huì)不會(huì)被自動(dòng)加載 |
struts.configuration.xml.reload |
true/false |
xml配置文件修改后會(huì)不會(huì)被自動(dòng)加載 |
struts.action.extension |
action |
struts2框架處理URI后綴。默認(rèn)是action或者沒(méi)有。可以配置多個(gè)值,用逗號(hào)進(jìn)行分割 |
struts.i18n.encoding |
UTF-8 |
Struts2中使用的默認(rèn)編碼 |
struts.multipart.maxSize |
2097152:2M |
Struts2中進(jìn)行文件上傳時(shí)的文件大小限制 |
struts.objectFactory.spring.autoWire |
name |
與Spring框架進(jìn)行集成用的 |
struts.objectFactory |
spring |
與Spring框架進(jìn)行集成用的 |
struts.serve.static.browserCache |
true |
是否允許瀏覽器進(jìn)行緩存靜態(tài)資源 |
struts.enable.DynamicMethodInvocation |
true/false |
是否允許動(dòng)態(tài)方法調(diào)用。 |
struts.ui.theme |
xhtml |
Struts2UI標(biāo)簽庫(kù)使用的默認(rèn)樣式主題 |
struts.ui.templateDir |
template |
樣式模板存在了什么文件夾中。 |
4、多個(gè)struts配置文件
user.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts./dtds/struts-2.3.dtd">
<struts>
<package name="user" extends="struts-default">
<action name="user" class="com.sd.action.User">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
struts.xml
<!-- 覆蓋默認(rèn)的參數(shù)配置 -->
<constant name="struts.devMode" value="true"></constant>
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<include file="user.xml"></include>
5、結(jié)果視圖
5.1 result元素:
- 作用:配置邏輯結(jié)果視圖。一個(gè)動(dòng)作可以對(duì)應(yīng)多個(gè)邏輯視圖
- 屬性:
- name:邏輯視圖名稱,和動(dòng)作類方法的返回值對(duì)應(yīng)。默認(rèn)是success
- type:轉(zhuǎn)向?qū)嶋H視圖的方式。默認(rèn)是dispatcher,轉(zhuǎn)發(fā),目標(biāo)是一個(gè)頁(yè)面。
type的取值:從struts-defualt.xml中找
1). dispathcer:目標(biāo)是一個(gè)頁(yè)面,請(qǐng)求轉(zhuǎn)發(fā)
2). redirect:目標(biāo)是一個(gè)頁(yè)面,請(qǐng)求重定向
3). chain :目標(biāo)是另外一個(gè)動(dòng)作,請(qǐng)求轉(zhuǎn)發(fā)
4). redirectAction:目標(biāo)是另外一個(gè)動(dòng)作,請(qǐng)求重定向
5.2 result中的參數(shù)設(shè)置
- 下面兩種的寫法本質(zhì)上是一樣的:
<action name="demo4">
<result name="success" type = "dispatcher">/success.jsp</result>
</action>
<action name="demo4">
<result name="success" type = "dispatcher">
<param name="location">/success.jsp</param>
</result>
</action>
- 轉(zhuǎn)發(fā)的目標(biāo)動(dòng)作不在同一個(gè)包下,而且有著不同的namespace
<package name="p1" extends="struts-default">
<action name="demo3" class="com.itheima.action.Demo3Action">
<!-- 一個(gè)動(dòng)作轉(zhuǎn)向另外一個(gè)動(dòng)作 -->
<result name="success" type="chain">
<!-- 轉(zhuǎn)發(fā)到不同名稱空間下的動(dòng)作 -->
<param name="namespace">/p2</param>
<param name="actionName">demo4</param>
</result>
</action>
</package>
<package name="p2" extends="struts-default" namespace="/p2">
<action name="demo4">
<result name="success" type="dispatcher">
<!-- param設(shè)置參數(shù):調(diào)用dispatcher對(duì)應(yīng)的類的setLocation("/success.jsp") -->
<param name="location">/success.jsp</param>
</result>
</action>
</package>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
|