這一節主要講解struts2里面的struts.xml的常用標簽及作用:
-
解決亂碼問題
<constant name="struts.i18n.encoding" value="utf-8"/> //設置編碼格式為utf-8
-
自定義擴展名
<constant name="struts.action.extension" value="action,,wang"/> //struts默認擴展名是action,可以自定義
-
設置開發模式
<constant name="struts.devMode" value="true"/> //打開開發者模式,可在出錯時提供友好的錯誤信息提示
以上參數都是在struts.xml中配置的,我們也可以在src目錄下新建一個struts.properties文件,上面三個配置都可以寫成下面這樣,能實現同樣的作用:
struts.i18n.encoding=utf-8 struts.action.extension=action,,wang struts.devMode=true
-
設置配置文件修改后自動加載(開發時使用)
<constant name="struts.configuration.xml.reload" value="true"/> //修改struts.xml后,無需重啟Tomcat
-
引入其他配置文件(多在團隊協作開發使用)
<include file="com/wang/struts/user.xml"/> -
package包(着重介紹)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- package屬性介紹 1.name ->包的名稱,可自定義,可以配置多個包 2.namespace ->命名空間,不同模塊可以指定不同的空間,必須以"/"開頭 3.extends -> 繼承,值是直接或間接的繼承struts-default,它也是一個xml文件 --> <package name="login" namespace="/user" extends="struts-default"> <!-- action 屬性介紹 1.name ->url請求名,不需要加后綴(.action) 2.class ->處理url對應的java類,class要求報名加類名 3.method ->配置處理請求的方法,默認為execute;方法必須是public String修飾的 --> <action name="login" class="com.wang.action.LoginAction" method="execute"> <!-- result屬性介紹 1.name:->匹配請求方法的返回值,默認是success 2.type:->結果處理類型,默認是dispatcher轉發 chain: 鏈接到下一個action,執行完actionA后執行actionB<result type="chain">exit</result> redirect: 重定向到jsp頁面 redirectAction: 重定向到下一個action --> <result name="success">/succ.jsp</result> <result name="error">/login.jsp</result> </action> </package> </struts> -
配置默認執行的class(package子標簽,置於action標簽之上)
<!-- 當action標簽中沒有寫class屬性時,默認執行這個class--> <default-class-ref class="com.wang.action.LoginAction"/> -
配置默認的action(package子標簽,置於action標簽之上)
<!--當請求的action不存在時,執行默認的default-->
<default-action-ref name="default"/> <actionname="default"> <result>/index.jsp</result> </action> -
配置全局結果集(package子標簽,置於action標簽之上)
<global-results> <!-- 所有的aciton中,只要action里面的方法返回了comehere字符串時,就都跳到這個a.jsp頁面來 --> <result name="comehere">/a.jsp</result> </global-results>
