1. 程式人生 > >idea+maven+Struts2 之struts.xml中標籤介紹

idea+maven+Struts2 之struts.xml中標籤介紹

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">

<struts>
    <!--修改struts action訪問時的字尾,預設為.action;可以省略;多個可以使用英文逗號隔開-->
    <constant name
="struts.action.extension" value="action,do,html"></constant>

    <!--include節點是Struts2中元件化的方式,可以將每個功能獨立到一個xml配置檔案中,
   然後通過include節點引用-->
    <include file="/struts_index.xml"></include>

     <!--package提供了將多個Action組織為一個模組的方式
         package的名字必須是唯一的package可以擴充套件 當一個package擴充套件自另一個
         package的時候package會在本身配置的基礎上加入擴充套件的package的配置父package
         必須在子package前配置
         name:package名稱
         extends:繼承的父package名稱
         abstract:設定package的屬性為抽象的package不能定義action
         namespace:定義package名稱空間 該名稱空間影響url的地址,例如:
         namespace="/test" 那麼訪問路徑為http://localhost:8080/ssh/test/login
         其中字尾.action可以省略
         
--> <package name="null" extends="struts-default" namespace="/test"> <interceptors> <!--定義攔截器 name:攔截器名稱 class:攔截器類路徑 --> <interceptor name="timer" class="com.zxr.timer"></interceptor> <
interceptor name="logger" class="com.zxr.Logger"></interceptor> <!--定義攔截器棧--> <interceptor-stack name="mystack"> <interceptor-ref name="timer"></interceptor-ref> <interceptor-ref name="logger"></interceptor-ref> </interceptor-stack> </interceptors> <!--定義預設的攔截器每個Action都會自動引用, 如果Action中引用了其它攔截器 預設攔截器將無效--> <default-action-ref name="login"></default-action-ref> <!--全域性results配置--> <global-results> <result name="input">/error.jsp</result> </global-results> <!-- Action配置一個Action可以被多次對映(只要action配置中的name不同) name:action名稱 class:對應的類的路徑 method:呼叫Action中的方法 --> <action name="login" class="com.zxr.action.LoginAction" method="success"> <!--引用攔截器 name:攔截器名稱或攔截器棧名稱 <interceptor-ref name="timer"></interceptor-ref> --> <!-- 節點配置 name:result名稱 和Action中返回的值相同 type:result型別 不寫則選擇superpackage的type struts-default.xml中預設的type --> <result name="success">/jsp/success.jsp</result> <!--引數設定 name:對應Action中的get/set方法 --> <param name="url">http://www.sina.com</param> </action> </package> <package name="demo" namespace="/" extends="struts-default"> <!--配置預設的action--> <default-action-ref name="index"></default-action-ref> <action name="index"> <result>/jsp/error/error.jsp</result> </action> <!--沒有指定action中的方法,呼叫action中的預設方法execute--> <action name="demoAction" class="com.zxr.action.IndexAction"> <result name="success">/jsp/index.jsp</result> </action> <!--指定方式呼叫action中的方法通過 method="對應的方法" 指定所要呼叫的方法--> <action name="addAction" class="com.zxr.action.IndexAction" method="add"> <result name="add">/jsp/add.jsp</result> </action> <!--使用!呼叫action中的方法 http://localhost:8080/gthAction!add.action struts2 2.5版本必須配置 <allowed-methods>add,edit</allowed-methods> 否則無法通過匹配符訪問 【一般不推薦使用此方法】 --> <action name="gthAction" class="com.zxr.action.IndexAction"> <result name="add">/jsp/add.jsp</result> <result name="edit">/jsp/edit.jsp</result> <result name="success">/jsp/success.jsp</result> <allowed-methods>add,edit</allowed-methods> </action> <!--使用萬用字元呼叫action中的方法 【提倡使用】 *表示匹配的引數 {1}表示匹配第一個引數 struts2 2.5版本必須配置 <allowed-methods>add,edit</allowed-methods> 否則無法通過匹配符訪問 --> <action name="tpfAction_*" class="com.zxr.action.IndexAction" method="{1}"> <result name="add">/jsp/{1}.jsp</result> <result name="edit">/jsp/{1}.jsp</result> <result name="success">/jsp/index.jsp</result> <allowed-methods>add,edit</allowed-methods> </action> <!--通過全域性萬用字元的方式動態的呼叫action和action中的方法 【提倡使用】 第一個匹配符必須和action中類名相同 http://localhost:8080/Index_add Index為IndexAction的Index ;add為IndexAction中的方法 --> <action name="*_*" class="com.zxr.action.{1}Action" method="{2}"> <result name="add">/jsp/{2}.jsp</result> <result name="edit">/jsp/{2}.jsp</result> <result name="success">/jsp/index.jsp</result> <allowed-methods>add,edit</allowed-methods> </action> </package> <!--使用!呼叫方法時必須新增此配置 訪問方式: --> <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> </struts>