Struts.xml常用配置

全局視圖

<global-results>

        <result  name="error">/WEB-INF/page/error.jsp</result>

</global-results>

爲Action的屬性注入值

<action  name="hello"class="com.chen.action.Hello"  method="save">

            <param name="savepath">/image</param>

            <result  name="success">/saveOK.jsp</result>

</action>

修改Struts2請求的後綴

<constant name="struts.action.extension"value="do,go,action"/>

帶參重定向

<action name="hello"class="com.chen.action.Hello" method="sayHao">

            <result name="success">/sayHao.jsp?message=${message}</result>

</action>

前端通過以下代碼獲得參數(會亂碼)

${param.message}

若亂碼則使用以下代碼獲取:

<%=URLDecoder.decode(newString(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8"),"UTF-8") %>

動態方法調用

動態方法調用就是通過url動態指定調用Action哪個方法,而無需配置<action>的method屬性。

通過 “Action名稱!方法名”指定調用Action哪個方法。

(1)Struts.xml中設置Struts2支持動態方法調用

<constant name="struts.enable.DynamicMethodinvocation"value="true"/>

(2)struts.xml中配置無method屬性的<action>標籤,如下:

<action name="hello"class="com.chen.action.Hello">

            <result  name="success">/success.jsp</result>

</action>

(3)通過“Action名稱!方法名”就會執行對應Action中的指定方法。

使用通配符

<action name="*_*"class="com.chen.action.{1}" method="{2}">

            <result name="success">/{2}.jsp</result>

</action>

•       *_*代表匹配兩個字符串;

•       {1} 匹配用於執行class;

•       {2} 匹配用於指定method執行方法和結果頁面。

Action配置中的各種默認值

1. 如果沒有爲action指定class,默認是ActionSupport

2. 如果沒有爲action指定method,默認執行action中的execute()方法;

3. 如果沒有指定resultname屬性,默認值爲success

配置默認Action

可以爲每個package定義一個默認的Action,如果訪問路徑在package沒有匹配<action>就會執行默認action。

<default-action-ref name="error"></default-action-ref>

<action name="error"class="com.chen.action.ErrorAction"  method="execute">

            <result>/WEB-INF/page/error.jsp</result>

</action>

配置Action默認處理類

如果配置<action> 沒有指定class屬性,就會執行Action的默認處理類,在struts-default.xml中,有如下配置:

<default-class-ref class="com.opensymphony.xwork2.ActionSupport"/>

添加外部配置文件

隨着應用規模的增加,系統中Action的數量也會大量增加,導致struts.xml配置文件變得非常臃腫,爲了避免struts.xnl文件過於龐大、臃腫,提高struts.xml文件的可讀性,我們可以將一個strtus.xml配置文件分解成多個配置文件,然後在struts.xml文件中包含其他配置文件。例如:

<struts>

    <include file="department.xml"></include>

<include file="employee.xml"></include>

</struts>

發佈了119 篇原創文章 · 獲贊 57 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章