配置struts.xml文件
在struts2框架中使用包來管理Action,包的作用和java中的類包是非常相似的,它主要用於管理一組業務功能相關的action。在實際應用中,我們應該把一組業務功能相關的Action放在同一個包下。
配置包時必須指定name屬性,該name屬性值可以任意取名,但必須唯一,它不對應java的類包,如果其他包要繼承該包,必須通過該屬性進行引用。包的namespace屬性用於定義該包的命名空間,命名空間作爲訪問該包下Action的路徑的一部分,如訪問上面例子的Action,訪問路徑爲:/test/helloworld.action。namespace屬性可以不配置,對本例而言,如果不指定該屬性,默認的命名空間爲“”(空字符串)。
通常每個包都應該繼承struts-default包,因爲struts2很多核心的功能都是攔截器來實現。如:從請求中把請求參數封裝到action,文件上傳和數據驗證等等都是通過攔截器實現的。struts-default定義了這些攔截器和Result類型。可以這麼說:當包繼承了struts-default才能使用struts2提供的核心功能。struts-default包是在struts2-core-x.x.x.jar文件中的struts-default.xml中定義的。struts-default.xml也是Struts2默認配置文件。
包還可以通過abstract=“true”定義爲抽象包,抽象包中不能包含action,只能被繼承。
<package name="Login" extends="struts-default">
<global-results>
<result name="error">/WEB-INF/jsp/admin/pageError_404.jsp</result>
</global-results>
<!-- 跳到登錄頁面 -->
<action name="DoLoginPage">
<result>/WEB-INF/jsp/login/login.jsp</result>
</action>
<!-- 整個系統彈框信息提醒的ajax,目前只有這種方法才能防止瀏覽器點擊返回之後又出現彈框的問題-->
<action name="JudgeMessageAjaxAction" class="com.ctbt.action.admin.ajax.JudgeMessageAjaxAction">
</action>
<!-- 登錄 -->
<action name="DoLogin" class="com.ctbt.action.login.DoLoginAction">
<result name="UserIndex" type="redirect">DoUserIndex</result>
<result name="AdminIndex" type="redirect">DoAdminIndex</result>
<result name="login" >/WEB-INF/jsp/login/login.jsp</result>
</action>
<!-- 登出 -->
<action name="DoLogout" class="com.ctbt.action.logout.DoLogOutAction">
<result type="redirect">DoLoginPage</result>
</action>
</package>