struts2--convention-plugin--零配置

  1 <?xml version="1.0" encoding="UTF-8" ?>
  2 <!DOCTYPE struts PUBLIC
  3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4     "http://struts.apache.org/dtds/struts-2.0.dtd">
  5 
  6 <struts>
  7     <!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->
  8     <constant name="struts.i18n.encoding" value="UTF-8" />
  9     <!-- 指定Struts 2默认的ObjectFactory Bean,该属性默认值是spring -->
 10     <constant name="struts.objectFactory" value="spring" />
 11     <!-- 该属性指定整合Spring框架时,是否缓存Bean实例,该属性只允许使用true和 false两个属性值,它的默认值是true。通常不建议修改该属性值 -->
 12     <constant name="struts.objectFactory.spring.useClassCache"
 13         value="true" />
 14     <!-- 指定spring框架的装配模式装配方式有: name, type, auto, and constructor (name 是默认装配模式) -->
 15     <constant name="struts.objectFactory.spring.autoWire" value="name" />
 16     <!-- 该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。 -->
 17     <constant name="struts.enable.DynamicMethodInvocation" value="false" />
 18     <!-- 设置浏览器是否缓存静态内容,默认值为true,开发阶段最好false -->
 19     <constant name="struts.serve.static.browserCache " value="false" />
 20     <!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false,开发阶段最好true -->
 21     <constant name="struts.configuration.xml.reload" value="true" />
 22     <!-- 访问静态方法 -->
 23     <constant name="struts.ognl.allowStaticMethodAccess" value="true" />
 24     <!-- 开发模式,发布时要设置为false -->
 25     <constant name="struts.devMode" value="false" />
 26     <constant name="struts.ui.theme" value="simple" />
 27     
 28     <!-- 指定jsp文件所在的目录地址,所有的结果页面默认都存储在WEB-INF/content
 29     <constant name="struts.convention.result.path" value="/WEB-INF/content/" />
 30     -->
 31     
 32     <!-- 用于配置类名后缀,默认为Action,设置后,Struts2只会去找这种后缀名的类做映射 -->
 33     <constant name="struts.convention.action.suffix" value="Action" />
 34     <!-- 设置即使没有@Action注释,依然创建Action映射。默认值是false。因为Convention-Plugin是约定优于配置的风格,
 35             可以不通过注解根据预先的定义就能访问相应Action中的方法 -->
 36     <constant name="struts.convention.action.mapAllMatches" value="true" />
 37     <!-- 用于配置包路径。默认包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action类的路径来搜索。-->
 38     <constant name="struts.convention.package.locators" value="action" />
 39     <!-- Default parent package for action mappins 使用front转换器 -->
 40     <constant name="struts.convention.default.parent.package" value="front" />
 41     <!-- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts 2处理。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开 -->   
 42     <!-- 会导致Config Browser Plugin 无效-->
 43        <constant name="struts.action.extension" value="3d" />   
 44         
 45     <!-- <package>元素可以把逻辑上相关的一组Action、Result、Intercepter等元素封装起来,形成一个独立的模块,package可以继承其他的package,也可以作为父包被其他的package继承,比如“<package name="helloworld"  extends="struts-default">”中,helloworld这个包就继承了struts-default这个包。 -->
 46     <!-- 没找到action -->
 47     <package name="default" extends="struts-default">
 48     
 49         <interceptors>        
 50             <interceptor-stack name="secureDefaultStack">
 51                 <interceptor-ref name="defaultStack">
 52                     <!-- 防止漏洞 -->
 53                     <param name="params.excludeParams">(.*.|^|.*|[(&#39;|"))(c|C)lass(.|(&#39;|")]|[).*,^dojo..*,^struts..*,^session..*,^request..*,^application..*,^servlet(Request|Response)..*,^parameters..*,^action:.*,^method:.*</param>
 54                 </interceptor-ref>
 55             </interceptor-stack>
 56         </interceptors>
 57     
 58         <default-interceptor-ref name="secureDefaultStack" />
 59        
 60        <default-action-ref name="notFound" />
 61         <action name="notFound" class="com.maker.app.action.NotFoundAction">
 62             <result name="success">/404.jsp</result>
 63             <result name="error">/404.jsp</result>
 64             <result name="input">/404.jsp</result>
 65         </action>
 66         
 67     </package>
 68 
 69     <package name="base" extends="struts-default">
 70     
 71         <result-types>
 72             <result-type name="json" class="org.apache.struts2.json.JSONResult">
 73                 <param name="ignoreHierarchy">false</param>
 74                 <param name="excludeProperties">locale</param>
 75                 <param name="excludeNullProperties">true</param>
 76             </result-type>
 77         </result-types>
 78 
 79         <!-- 重新定义过滤器,配置方法级别的校验,注意如果改版本请从版本中取出struts-default.xml copy update -->
 80         <interceptors>
 81             <interceptor-stack name="defaultParentStack">
 82                 <interceptor-ref name="exception" />
 83                 <interceptor-ref name="alias" />
 84                 <interceptor-ref name="servletConfig" />
 85                 <interceptor-ref name="i18n" />
 86                 <interceptor-ref name="prepare" />
 87                 <interceptor-ref name="chain" />
 88                 <interceptor-ref name="scopedModelDriven" />
 89                 <interceptor-ref name="modelDriven" />
 90                 <interceptor-ref name="fileUpload" />
 91                 <interceptor-ref name="checkbox" />
 92                 <interceptor-ref name="multiselect" />
 93                 <interceptor-ref name="staticParams" />
 94                 <interceptor-ref name="actionMappingParams" />
 95                 <interceptor-ref name="params">
 96                     <param name="excludeParams">(.*.|^|.*|[(&#39;|"))(c|C)lass(.|(&#39;|")]|[).*,^dojo..*,^struts..*,^session..*,^request..*,^application..*,^servlet(Request|Response)..*,^parameters..*,^action:.*,^method:.*</param>
 97                 </interceptor-ref>
 98                 <interceptor-ref name="conversionError" />
 99                 <interceptor-ref name="validation">
100                     <param name="excludeMethods">input,back,cancel,browse</param>
101                     <!-- 配置方法级别的校验 -->
102                     <param name="validateAnnotatedMethodOnly">true</param>
103                 </interceptor-ref>
104                 <interceptor-ref name="workflow">
105                     <param name="excludeMethods">input,back,cancel,browse</param>
106                 </interceptor-ref>
107                 <interceptor-ref name="debugging" />
108             </interceptor-stack>
109 
110             <!-- The completeStack is here for backwards compatibility for applications 
111                 that still refer to the defaultStack by the old name -->
112             <interceptor-stack name="completeStack">
113                 <interceptor-ref name="defaultStack" />
114             </interceptor-stack>
115 
116             <!-- Sample execute and wait stack. Note: execAndWait should always be 
117                 the *last* interceptor. -->
118             <interceptor-stack name="executeAndWaitStack">
119                 <interceptor-ref name="execAndWait">
120                     <param name="excludeMethods">input,back,cancel</param>
121                 </interceptor-ref>
122                 <interceptor-ref name="defaultStack" />
123                 <interceptor-ref name="execAndWait">
124                     <param name="excludeMethods">input,back,cancel</param>
125                 </interceptor-ref>
126             </interceptor-stack>
127         </interceptors>
128         <default-interceptor-ref name="defaultParentStack" />
129 
130     </package>
131     
132     <!-- 前端默认包 -->
133     <package name="front" extends="default">
134 
135         <result-types>
136             <result-type name="json" class="org.apache.struts2.json.JSONResult">
137                 <param name="ignoreHierarchy">false</param>
138                 <param name="excludeProperties">locale,texts,errorMessages,errors,fieldErrors</param>
139                 <param name="excludeNullProperties">true</param>
140             </result-type>
141         </result-types>
142 
143     </package>
144 
145 </struts>
struts.xml

参考:

convention-plugin帮助页

dependence

在maven repository search :convention-plugin

使用 config Browser Plugin 查看Struts2运行期间可通过此插件查看Struts2的配置情况

在maven repository search :Configuration Browser Plugin


maven web 基本架构

project

  -src/main/java

  -src/main/resource

  -src/main/webapp/*在eclipse上maven模式,不显示在工程上,相当于webRoot*/

    --META-INF

    --WEB-INF

    --index.jsp

  -test/main/java

  -test/main/resource

  -target

  -pom.xml

给笨笨的自己提个醒>_<~
原文地址:https://www.cnblogs.com/ephuizi/p/4539742.html