struts.xml 小解析

在進入下一步前,花了一點時間把 struts.xml 以自己的方式瞭解了一遍,進入文章前先來張執行流程圖吧。

  • 這是一個最基本的 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>
    <package name="helloworld" extends="struts-default">
        <action name="Hello" class="com.test.controller.Hello" method="execute"> 
            <result name="abc">
                /hello.jsp
            </result>
        </action>
</struts>

接下來一行一行來解析一下功能吧:

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

這一行是可以不用背的。在引入的 struts2-core-2.X.jar 中可以找到如下圖的 dtd :

點擊所要引用的 dtd 、其中內容即會有所需的這一行、直接 copy 過來即可:

  • package :
<package name="helloworld" extends="struts-default">
</package>

name :只是個辨識名稱,取自己所想要的名字即可。

extends:可寫上要繼承的文件、預設是填 struts-default 。

namespace :這裡沒寫、因為是選填項目。可與 url 有關聯;例如請求 /test/*.action 時可以將 namespace 設為 /test 。

  • action :
<action name="Hello" class="com.test.controller.Hello" method="execute"> 
</action>

這裡就是配合我們所寫程式(class)的部份。

name :寫網頁的進入名稱。如我們進入的頁面是 Hello.action 、這裡就要寫 Hello 。大小寫有差別,如果我要進入的是 hello.action ,在這裡寫 Hello 就會出現 404 頁面。

class :放程式的路徑位置。

method :配合以下 java 部份來看。寫 execute 就進入 return “abc”; 部份、寫 abcdefg 就進入 return “def”; 部份。

public String execute(){
    return "abc";
}

public String abcdefg(){
    return "def";
}
  • result :
<result name="abc">
    /hello.jsp
</result>

name :搭配上面的 java 碼;return “abc” 時就導向中間所指定的頁面如:hello.jsp 、return “def” 就可再導向其他指定的頁面囉!

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *