Struts2配置文件詳解
作用:
在struts2的配置文件中引入了面向對象思想,使用了分包管理。易於管理動作類。便於模塊化開發動作類。
屬性:
name:包的名稱。必須寫。且必須唯一。
extends:一般情況下需要繼承struts-default包,但不是必須的。不過如果不繼承的話,將無法使用struts2提供的核心功能。struts-default.xml中定義著struts-default這個包。而struts-default.xml是在我們的struts.xml加載之前加載。
abstract:把包聲明為抽象包,抽象包就是用來被繼承的。只要是沒有<action>元素的包,就可以聲明為抽象包。
namespace:名稱空間。
packege中的namespace
namespace的默認值:
a.不寫該屬性
b.寫了該屬性,取值是一個"".
註意:默認值不是/
動作類的搜索順序:
先找名稱空間,再找動作名稱。
action
作用:
配置動作用的。
屬性:
name:動作名稱,需要和jsp頁面上的url對應。(此處不需要寫,也不能寫後綴)
class:動作類全名。默認的動作類是:com.opensymphony.xwork2.ActionSupport
是在struts-default.xml中定義的
method:動作類中的方法名稱。默認是public String execute(){}
1.public的
2.返回值必須是String
3.沒有參數
關於動作類的定義方式:
方式一:動作類就是一個POJO,非常簡單的javabean。
方式二:動作類實現com.opensymphony.xwork2.Action接口。
常量:給動作方法返回值用的。用常量可以使你的應用規範和統一。
常量變量名 對應的值 說明
SUCCESS success 動作方法執行一切OK
ERROR error 動作方法執行時遇到了異常
LOGIN login 一般轉向登陸頁面
NONE none 不轉向任何的視圖
方式三:動作類繼承com.opensymphony.xwork2.ActionSupport 推薦使用
通配符的配置:(***使用)
原始的基本配置方式
<package name="user" extends="struts-default">
<action name="addUser" class="cn.itcast.web.action.UserAction"
method="addUser">
<result name="success">/addUsersuccess.jsp</result>
</action>
<action name="updateUser" class="cn.itcast.web.action.UserAction"
method="updateUser">
<result name="success">/updateUsersuccess.jsp</result>
</action>
<action name="deleteUser" class="cn.itcast.web.action.UserAction"
method="deleteUser">
<result name="success">/deleteUsersuccess.jsp</result>
</action>
<action name="findUser" class="cn.itcast.web.action.UserAction"
method="findUser">
<result name="success">/findUsersuccess.jsp</result>
</action>
</package> -->
使用通配符進行配置
*表示的就是通配符。
{1}表示的是通配符第一個出現的位置
<package name="user" extends="struts-default">
<action name="*" class="cn.itcast.web.action.UserAction" method="{1}">
<result name="success">/{1}success.jsp</result>
</action>
</package>
通配符的進階使用方式
<package name="user" extends="struts-default">
<action name="*_*" class="cn.itcast.web.action.{2}Action" method="{1}{2}">
<result name="success">/{1}{2}success.jsp</result>
</action>
</package>
result
作用:
為動作指定結果視圖
屬性:
name:邏輯視圖的名稱,對應著動作方法的返回值。默認值是success。
type:結果類型,指的就是用什麽方式轉到定義的頁面。默認是dispatcher。
type屬性的常用取值:
dispatcher:(默認值)
使用請求轉發,轉向一個頁面。
redirect:
使用重定向,轉向一個頁面。
redirectAction:
重定向到另外一個動作。註意:使用的是重定向。
stream:
文件下載的結果類型
全局視圖和局部視圖:
局部視圖
只能當前動作使用
<package name="p1" extends="struts-default">
<action name="hello" class="cn.itcast.web.action.HelloAction"
method="sayHello">
局部視圖
<result name="success">/success.jsp</result>
</action>
</package>
全局視圖
所有動作都可以使用
<package name="myDefault" extends="struts-default" abstract="true">
配置全局結果視圖
註意:當有局部結果視圖和全局結果視圖時,先找局部的,如果沒有局部的,找全局的
<global-results>
<result name="success" type="redirect">/success.jsp</result>
<result name="login" type="redirect">/login.jsp</result>
</global-results>
</package>
註意:優先級問題,先局部後全局。
Struts2配置文件詳解