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>

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

struts2--convention-plugin--零配置的更多相关文章

  1. struts2 Convention插件零配置,使用注解开发

    从struts21开始,struts2不再推荐使用codebehind作为零配置插件,而是改用Convention插件来支持零配置.与以前相比较,Convention插件更彻底. 使用Conventi ...

  2. Struts2 Convention Plugin ( struts2 零配置 )

    Struts2 Convention Plugin ( struts2 零配置 ) convention-plugin 可以用来实现 struts2 的零配置.零配置的意思并不是说没有配置,而是通过约 ...

  3. struts2 convention-plugin实现零配置

    零配置并不是没有配置,而是通过约定大于配置的方式,大量通过约定来调度页面的跳转而使得配置大大减少.使得Action等配置不必写在Struts.xml中. convention-plugin的约定 1. ...

  4. Struts2+jQuery+Json零配置实现ajax

    (一)Jsp页面代码 <%@ page language="java" import="java.util.*" pageEncoding="U ...

  5. struts2注解驱动 零配置

    一.配置web.xml<filter><filter-name>struts2</filter-name><filter-class>org.apach ...

  6. 菜鸟学Struts2——零配置(Convention )

    又是周末,继续Struts2的学习,之前学习了,Struts的原理,Actions以及Results,今天对对Struts的Convention Plugin进行学习,如下图: Struts Conv ...

  7. struts2采用convention-plugin实现零配置

    最近开始关注struts2的新特性,从这个版本开始,Struts开始使用convention-plugin代替codebehind-plugin来实现struts的零配置. 配置文件精简了,的确是简便 ...

  8. struts2的零配置

    最近开始关注struts2的新特性,从这个版本开始,Struts开始使用convention-plugin代替codebehind-plugin来实现struts的零配置.配置文件精简了,的确是简便了 ...

  9. struts2 Convention插件好处及使用

    现在JAVA开发都流行SSH.而很大部分公司也使用了struts2进行开发..因为struts2提供了很多插件和标签方便使用..在之前开发过程中总发现使用了struts2会出现很多相应的配合文件.如果 ...

  10. 从struts2.1开始Convention零配置

    从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该 ...

随机推荐

  1. LoadRunner 常用C语言函数使用

    strlen:获取字符串的长度 char str[20]="容我想想"; int len; len = strlen(str); lr_output_message("s ...

  2. poj 1141 区间dp+递归打印路径

    Brackets Sequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 30383   Accepted: 871 ...

  3. node.js整理 04网络操作

    简介 var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content- ...

  4. 分享Kali Linux 2016.2第46周镜像文件

    分享Kali Linux 2016.2第46周镜像文件Kali Linux官网在11月13日发布Kali Linux 2016.2的第46周镜像文件.这次还是保持以往的规模,总共提供了11个镜像文件. ...

  5. 快销品 车销批发管理手持终端PDA系统 打印开单 入库 库存 盘点多功能一体

    手持POS终端PDA移动开单 PDA通过扫描商品条码移动开单,实现便携式办公,伴随式销售,浩瀚技术研发团队开发的一款最新产品,PDA能通过WIFI无线局域网.GPRS互联网直接与主机连接,让公司业务人 ...

  6. 03_Java面向对象特征: 封装性

    1. 面向对象的概念 面向对象是相对面向过程而言,面向对象和面向过程都是一种思想 面向过程• 强调的是功能行为面向对象• 将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象 ...

  7. 最火的.NET开源项目

    综合类 微软企业库 微软官方出品,是为了协助开发商解决企业级应用开发过程中所面临的一系列共性的问题, 如安全(Security).日志(Logging).数据访问(Data Access).配置管理( ...

  8. pycharm设置主题/默认格式/字体

    1.步骤为:File-->Settings-->Appearance & Behavior-->Appearance-->Theme中就可以选择喜欢的主题 2.一般将文 ...

  9. CF#335 Intergalaxy Trips

     Intergalaxy Trips time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  10. SIFT特征提取分析

    SIFT特征提取分析 sift 关键点,关键点检测 读'D. G. Lowe. Distinctive Image Features from Scale-Invariant Keypoints[J] ...