struts2-convention-plugin零配置

零配置的意思并不是说没有配置,而是通过约定大于配置的方式,大量通过约定来调度页面的跳转而使得配置大大减少。

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" 
    "http://struts.apache.org/dtds/struts-2.3.16.dtd">

<struts>
    <!--
    使用Convention插件,你需要将其JAR文件convention-plugin放到你应用的WEB-INF/lib目录中,
    你也可以在你Maven项目的POM文件中添加下面包依赖    
    <dependency>  
      <groupId>org.apache.struts</groupId>  
      <artifactId>struts2-convention-plugin</artifactId>  
      <version>2.1.6</version>  
    </dependency>  
    -->
    
    <!-- 在开发模式下,struts2的动态重新加载配置和资源文件的功能会默认生效。同时开发模式下也会提供更完善的日志支持。-->
    <constant name="struts.devMode" value="true" />
    
    <!--  主要用于设置请求编码(默认值(UTF-8)) ,Head和Include标签的解析编码。  资源和配置文件的解析编码。-->
    <constant name="struts.i18n.encoding" value="UTF-8" />
    
    <!-- 默认所有的结果页面都存储在WEB-INF/content下,你可以通过设置path这个属性的值来改变到其他路径  -->
    <constant name="struts.convention.result.path" value="/WEB-INF/page" />  
    
    <!-- 自定义jsp文件命名的分隔符 -->
    <constant name="struts.convention.action.name.separator" value="_" />
    
    <!-- 配置Convention插件自动重加载映射 是否自动重新编译class文件 -->
    <constant name="struts.convention.classes.reload" value="true" />
    
    <!-- 当struts.xml改动后,是否重新加载。默认值为false(生产环境下使用),开发阶段最好打开  -->    
    <constant name="struts.configuration.xml.reload" value="true"/>    
    
    <!-- 用于配置类名后缀,默认为Action,设置后,Struts2只会去找这种后缀名的类做映射 -->
    <constant name="struts.convention.action.suffix" value="Action" />
    
    <!--  设置struts的Action请求的后缀,支持多个时以逗号隔开 -->
    <constant name="struts.action.extension" value=",shtml" />
    
    <!-- 这个表示包路径包含action和actions的将被视为Action存在的路径来进行搜索-->
    <constant name="struts.convention.package.locators" value="action,actions" />
    
    <!-- 不进行扫描的包,用,分割,被包含的包,将不会被扫描成为action -->
    <constant name="struts.convention.exclude.packages" value="com.lapp.service" />
    
    <!-- 进行扫描的根包,该包会被扫描成action -->
    <constant name="struts.convention.action.packages" value="com.lapp.action" />
    
    <!--
    命名空间定义:从.package.locators标示开始到包结束的部分,就是命名空间
    Com.ustb.web.user.userAction的命名空间是:”/user”。 
    Com.ustb.web.user.detail.UserAction的命名空间是:”/user/detail” 
    -->
    <!-- 设置struts2的对象工厂,默认(struts)-->
    <constant name="struts.objectFactory" value="spring" />
    
    <!-- 默认返回的结果类型搜索。按顺序先找相关的dispatcher的jsp文件是否存在。然后再找velocity,再找freemarker,jsp -->
    <constant name="struts.convention.relative.result.types" value="dispatcher,velocity,freemarker,jsp" />
    
     <package name="default" extends="struts-default">
        <interceptors>
            <interceptor name="loginInterceptor" class="com.lapp.interceptor.AuthInterceptor" />
            <!-- 配置拦截器  Action中用注解:@InterceptorRef("loginStack")-->
            <interceptor-stack name="loginStack">
                <interceptor-ref name="loginInterceptor" />
                <interceptor-ref name="defaultStack" />
            </interceptor-stack>
            
        </interceptors>
        <global-results>
            <result name="login" type="redirect">/login</result>
        </global-results>
    </package> 
</struts>
原文地址:https://www.cnblogs.com/zhaojinhui/p/4968297.html