1. 程式人生 > >struts.xml中package的namespace屬性

struts.xml中package的namespace屬性

 struts.xml檔案中package標籤除了有name、extends屬性外,還有一個十分重要的屬性:namespace。如下:
<struts>
    <package name="struts2" extends="struts-default" namespace="/abc">
     <!-- 使用者登入Action -->
     <action name="login" class="com.cheng.sln.mvc.struts2.action.LoginAction">
      <result name="success">/jsp/struts2/result.jsp</result>
      <result name="input">/jsp/struts2/login2.jsp</result>
     </action>
    </package>
</struts>

該屬性預設為namespace="",所以在訪問該Action時,直接http://localhost:8080/應用名稱/login.action就可以請求到該Action。
當namespace="/abc"時,再訪問該Action時,其URL應為:http://localhost:8080/應用名稱/abc/login.action。
這樣在大型專案中有很多個Action時容易分類區分。

問題:如果namespace="",此時用http://localhost:8080/應用名稱/abc/login.action訪問該

Action,會不會成功?
答案是:會。因為當程式找不到相應的namespace時,它會自動去預設的namespace中去找Action