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">(.*\.|^|.*|\[('|"))(c|C)lass(\.|('|")]|\[).*,^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">(.*\.|^|.*|\[('|"))(c|C)lass(\.|('|")]|\[).*,^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>
参考:
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
给笨笨的自己提个醒>_<~