最完整的struts.xml骨架

众所周知,struts.xml是整个Struts2框架的核心!下面提供一个struts.xml文件示范(无任何实际意义,struts版本2.3),方便以后使用!
废话不多说,直接上代码,代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!--指定了Struts2.3配置文件的DTD(DTD文件位置:WEB-INF\lib\struts2-core-2.3.31.jar\struts-2.3.dtd)信息 -->
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<!--struts是Struts2配置文件的根元素 -->
<!-- 属性解释:order指定加载struts2配置文件的优先顺序 -->
<struts order="">
    <!--content元素可出现0或者无数次 用于设置一些struts2的常量-->
    <constant name="" value=""/>
    <!--bean元素可出现0或者无数次  struts2框架内置bean位置(WEB-INF\lib\struts2-core-2.3.31.jar\struts-default.xml) 
    bean作用:--重新定义struts2框架的核心组件,很少使用!
    1.创建Bean的实例(实现了接口的类的实例),将实例作为Struts框架的核心组件使用
    2.Bean包含的静态方法需要注入一个值(允许不出案件某个类的实例 通常设置static="true")
    -->
    <!-- 属性解释:
    type:可选属性,属性值通常是一个struts2接口 
    name:可选属性,指定了bean实例的名字,若type值相同,name名不能相同
    scope:可选属性,bean实例的作用域 属性值:default singleton request session 或 thread
    static:指定bean是否使用静态方法注入 指定了type属性 该属性不能指定为true
    optional:可选属性 指定bean是否是一个可选bean-->
    <bean type="" name="" class="" scope="" optional="" static=""></bean>
    <!-- include元素可出现0或者无数次 
    作用:包含其他配置文件
    属性解释:
    file:必填属性 制定了被包含配置文件(是标准的struts2配置文件)的文件名
    -->
    <include file="" />
    <!-- package元素是Struts配置问价的核心,可出现0或者无数次 
    作用:管理action和拦截器(拦截器 拦截器引用)
    每个包是多个action 多个拦截器 多个拦截器引用组成-->
    <!-- 属性解释:
    name:必填属性 指定该包的名字 此名字是该包被其他包引用的key
    extends:可选属性 指定该包继承其他包 (继承内容action定义和拦截器定义)
    父包应该在子包前面定义(因为struts2配置文件从上到下处理,可通过order来指定加载顺序)
    namespace:可选属性 该属性定义该包的命名空间
        关于命名空间:考虑到一个web应用中可能会出现相同的action,所以struts2以命名空间
        来管理action 同一个命名空间不能有同名action 不同命名空间可以有相同action
        若没有指定namespace则使用默认命名空间""(默认命名空间可处理任何模块下的action请求);
        若指定以后namespace后 action处理类的URL为命名空间+action名
            关于根命名空间(namespace="/")
            假设请求为/login.action
            系统先去根命名空间("/")中找login的action,若找到该action处理用户请求,若找不到就进入
            默认命名空间("")中找login的action,若找到该action处理用户请求,若找不到,提示出错!
    abstract:可选属性 指定该包是不是抽象包(抽象包不能有action) -->
    <package name="包名" extends="" namespace="" abstract="" externalReferenceResolver="" strict-method-invocation="">
        <!-- result-types元素可有可无 最多出现一次 -->  
        <result-types>
            <!-- result-type元素必须出现   可出现无数次 -->
            <result-type name="" class="" default="false|true">
                <!-- param元素可出现0或者无数次 -->
                <param name="参数名">参数值</param>
            </result-type>
        </result-types>
        <!-- interceptors元素可有可无,最多出现一次   包含拦截器和拦截器栈-->
        <interceptors>
            <!-- interveptors元素的interceptor元素和interceptor-stack元素至少出现其中之一 也可以同时出现 -->
            <!-- interceptor(拦截器)元素可以出现0或者无数次
            拦截器执行时间:Action处理之前,或者Action处理之后
            拦截器作用:
                权限控制(检查用户是否登录)
                跟踪日志(记录每个浏览者所请求的每个action)
                性能优化(记录每个action的开始处理时间和结束处理时间)-->
            <!-- 属性解释:
            name:拦截器的名字
            class:拦截器的处理类 -->
            <interceptor name="" class="">
                <!-- param可以出现0或者无数次 -->
                <param name="参数名">参数值</param>
            </interceptor>
            <!-- interceptor-stack(拦截器栈(多个拦截器形成一个拦截器栈,是一个大的拦截器,定义拦截器栈之前,必须先定义拦截器))可以出现0或者无数次 -->    
            <!-- 属性解释:
            name:拦截器栈的名字 -->
            <interceptor-stack name="">
                <!-- interceptor-ref元素必须出现 可出现无数次 
                作用:定义拦截器栈包含哪个拦截器-->
                <!-- 属性解释:
                name:已经定义好的拦截器的名字 -->
                <interceptor-ref name="">
                    <!-- param可以出现0或者无数次 -->
                    <param name="参数名">参数值</param>
                </interceptor-ref>
            </interceptor-stack>    
        </interceptors>
        <!-- default-class-ref元素可以出现0或者无数次 
        作用:改变action的默认处理类(action的默认处理类是ActionSupport)-->
        <!-- 属性解释:
        class:action的处理类 -->
        <default-class-ref class="">
            <!-- param元素可以出现0次或者无数次 -->
            <param name="参数名">参数值</param>
        </default-class-ref>
        <!-- default-interceptor-ref元素可以出现0或者无数次 -->
        <default-interceptor-ref name="">
            <!-- param元素可以出现0次或者无数次 -->
            <param name="参数名">参数值</param>
        </default-interceptor-ref>
        <!-- default-action-ref元素可以出现0或者无数次 
        作用:当用户请求的URL在容器中找不到对应的action时,系统使用默认的action来处理用户请求  需要和action元素结合使用-->
        <!-- 属性解释
        name:事先定义好的action的名字 -->
        <default-action-ref name="">
            <!-- param元素可以出现0次或者无数次 -->
            <param name="参数名">参数值</param>
        </default-action-ref>
        <!-- global-results(全局结果)元素可以出现0或者无数次 
        作用:对所有的action都有效
        若全局结果里包含了和局部结果同名的结果,局部会覆盖全局(以局部结果为准)-->
        <global-results>
            <!-- result元素必须出现 可以出现无数次 -->
            <result name="" type="">
                <!-- param元素可以出现0次或者多次 -->
                <param name="参数名">参数值</param>
            </result>
        </global-results>
        <!-- global-exception-mappings元素可以出现0或者无数次 -->
        <global-exception-mappings>
            <!-- exception-mapping(全局异常映射,对所有action都有效,当和局部异常一样时,以局部异常为准)元素必须出现 可以出现无数次
            作用:struts2框架的异常捕捉机制-->
            <!--属性解释:
            exception:此属性指定该异常映射所设置的异常类型
            result:指定action出现该异常时,系统转入reslut属性所指向的结果  -->
            <exception-mapping result="" exception="">
                <!-- param元素可以出现0次或者多次 -->
                <param name="参数名">参数值</param>
            </exception-mapping>
        </global-exception-mappings>
        <!-- struts2的核心,配置action的作用就是让容器知道该Action存在 -->
        <!-- 属性解释:
        name:action的名字 
            命名规范: 通常由字母和数字组成
            若name=""时,可处理列出web应用根路径下的所有文件请求
        class:可选属性 指定了该action的实现类(若没有指定,使用系统默认的ActionSupport)
        method:可以让action类调用指定方法,而不是execute方法来处理用户请求  默认值execute-->
        <action name="" class="" converter="" method="">

            <!-- param元素可以出现0次或者多次 -->
            <param name="参数名">参数值</param>
            <!-- result(局部结果)元素可以出现0次或者多次
            作用:配置逻辑视图(普通的字符串)和物理视图(JSP Velocity FreeMarker等)之间的关系 -->
            <!-- 属性解释:
            name:可选属性 默认值是success(不写name属性,默认为success) 
            type:可选属性 默认值是dispatcher(不写type属性,默认为dispatcher)
                type的值(struts2內建支持的结果类型):
                    chain:action链式处理的结果类型
                        不想转发到视图资源,希望另一个action进行下一步处理,将请求转发到另一个action
                    dispatcher:与jsp整合的结果类型
                        将请求转发(Forward)到指定的视图资源
                    freemarker:与FreeMarker整合的结果类型
                    httpheader:用于控制特殊HTTP行为的结果类型
                    redirect:直接跳转到其他URL的结果类型
                        将请求Redirect(重定向)到指定视图资源,丢失所有的请求参数,请求属性,action的处理结果
                    redirectAction:直接跳转到其他action的结果类型
                        直接将请求重定向到另外一个action,丢失所有的请求参数,请求属性,action的处理结果
                    stream:向浏览器返回一个InputStream的结果类型(用于文件下载)
                    velocity:与Velocity整合的结果
                    xslt:用于与XML/XSLT整合的结果类型
                    plainText:用于显示某个页面的原始代码的结果类型(不常用)-->
            <result name="" type="">
                <!-- param元素可以出现0次或者多次 -->
                <!-- 属性解释:
                name:参数的值
                    location:指定了该逻辑视图对应的实际的视图资源
                    parse:指定是否允许在实际视图名字中使用OGNL表达式  默认为可以使用(true) 
                    charSet(type="plainText"时使用):指定字符集,使用特定的字符集来处理页面                    
                    actionName(type="redirectAction"时使用):指定重定向的actionName
                    nameSpace(type="redirectAction"时使用):指定重定向的Action所在的命名空间
                    -->
                <param name="参数名">参数值</param>
            </result>
            <!-- interceptor-ref元素可以出现0次或者多次 
            作用:使用拦截器或者拦截器栈-->
            <!-- 属性解释:
            name:已经定义好的拦截器栈或者拦截器的名字 -->
            <interceptor-ref name="" >
                <!-- param元素可以出现0次或者多次 -->
                <param name="参数名">参数值</param>
            </interceptor-ref>
            <!-- exception-mapping(局部异常映射)元素可以出现0次或者多次 
            作用:struts2的异常机制-->
            <!--属性解释:
            exception:此属性指定该异常映射所设置的异常类型
            result:指定action出现该异常时,系统转入reslut属性所指向的结果  -->
            <exception-mapping result="" exception="" name="">
                <!-- param元素可以出现0次或者多次 -->
                <param name=""></param>
            </exception-mapping>
            <!-- allowed-methods元素可以出现0次或者多次 -->
            <allowed-methods></allowed-methods>
        </action>
    </package>
    <!-- unknown-handler-stack可以出现0或者无数次
    作用:用于配置Struts2的未知处理器(从Struts2.1开始)
    未知处理器的起作用的时刻 :用户请求未知action 指定action的未知方法 action处理结束返回未知result时-->
    <unknown-handler-stack>
        <!-- unknown-handler-ref可以出现0或者无数次 -->
        <!-- 属性解释:
        name:bean的name(这个Bean定义了一个UnknowHandler) -->
        <unknown-handler-ref name="" ></unknown-handler-ref>
    </unknown-handler-stack>
</struts>

不足之处,望指点!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值