<?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>
     <!-- action请求默认后缀 -->
     <constant name="struts.action.extension" value="" />
     <!-- action返回结果编码.解决乱码问题 -->
     <constant name="struts.i18n.encoding" value="utf-8" />
     <!-- 修改struts.xml后,无需重启Tomcat  -->
     <constant name="struts.configuration.xml.reload" value="true"/>
      <!-- package属性介绍
         1.name      ->包的名称,可自定义,可以配置多个包
         2.namespace ->命名空间,不同模块可以指定不同的空间,必须以"/"开头
         3.extends   -> 继承,值是直接或间接的继承struts-default,它也是一个xml文件
       -->
     <package name="xiif-default" extends="json-default">
         <result-types>
             <result-type name="stringResult" class="com.tcl.basic.obj.StringResult" />
         </result-types>
         <interceptors>
             <interceptor name="trimInterceptor"
                 class="com.tcl.basic.interceptor.TrimInterceptor" />
             <interceptor-stack name="deskapiStack">
                 <interceptor-ref name="trimInterceptor" />
                 <interceptor-ref name="defaultStack" />
             </interceptor-stack>
         </interceptors>
         <!-- 配置默认拦截器 -->
         <default-interceptor-ref name="deskapiStack" />
         <!-- 配置默认的action(package子标签,置于action标签之上).当请求的action不存在时,执行默认的default -->
         <default-action-ref name="default"/>
         <action name="default">
             <result>/index.html</result>
         </action>
     </package>
     
 </struts>
======================================================================
1.解决乱码问题
<constant name="struts.i18n.encoding" value="utf-8"/> //设置编码格式为utf-8
2. 自定义扩展名
<constant name="struts.action.extension" value="action,,tcl"/> //struts默认扩展名是action,可以自定义
3.设置开发模式
<constant name="struts.devMode" value="true"/> //打开开发者模式,可在出错时提供友好的错误信息提示
以上参数都是在struts.xml中配置的,我们也可以在src目录下新建一个struts.properties文件,上面三个配置都可以写成下面这样,能实现同样的作用:
struts.i18n.encoding=utf-8
struts.action.extension=action,,tcl
struts.devMode=true
4.设置配置文件修改后自动加载(开发时使用)
<constant name="struts.configuration.xml.reload" value="true"/> //修改struts.xml后,无需重启Tomcat
5.引入其他配置文件(多在团队协作开发使用)
<include file="com/tcl/struts/user.xml"/>
6. 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.tcl.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>
7.配置默认执行的class(package子标签,置于action标签之上)
<!-- 当action标签中没有写class属性时,默认执行这个class-->
<default-class-ref class="com.tcl.action.LoginAction"/>
8.配置默认的action(package子标签,置于action标签之上)
     <!--当请求的action不存在时,执行默认的default-->
     <default-action-ref name="default"/>
     <action name="default">
                <result>/index.jsp</result>
     </action>
9.配置全局结果集(package子标签,置于action标签之上)
<global-results>
<!-- 所有的aciton中,只要action里面的方法返回了comehere字符串时,就都跳到这个a.jsp页面来 -->
<result name="comehere">/a.jsp</result>
</global-results>