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>