<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>
<!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->
<constant name="struts.i18n.encoding" value="UTF-8" />
<!-- 指定Struts 2默认的ObjectFactory Bean,该属性默认值是spring -->
<constant name="struts.objectFactory" value="spring" />
<!-- 该属性指定整合Spring框架时,是否缓存Bean实例,该属性只允许使用true和 false两个属性值,它的默认值是true。通常不建议修改该属性值 -->
<constant name="struts.objectFactory.spring.useClassCache"
value="true" />
<!-- 指定spring框架的装配模式装配方式有: name, type, auto, and constructor (name 是默认装配模式) -->
<constant name="struts.objectFactory.spring.autoWire" value="name" />
<!-- 该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。 -->
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<!-- 设置浏览器是否缓存静态内容,默认值为true,开发阶段最好false -->
<constant name="struts.serve.static.browserCache " value="false" />
<!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false,开发阶段最好true -->
<constant name="struts.configuration.xml.reload" value="true" />
<!-- 访问静态方法 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
<!-- 开发模式,发布时要设置为false -->
<constant name="struts.devMode" value="false" />
<constant name="struts.ui.theme" value="simple" /> <!-- 指定jsp文件所在的目录地址,所有的结果页面默认都存储在WEB-INF/content
<constant name="struts.convention.result.path" value="/WEB-INF/content/" />
--> <!-- 用于配置类名后缀,默认为Action,设置后,Struts2只会去找这种后缀名的类做映射 -->
<constant name="struts.convention.action.suffix" value="Action" />
<!-- 设置即使没有@Action注释,依然创建Action映射。默认值是false。因为Convention-Plugin是约定优于配置的风格,
可以不通过注解根据预先的定义就能访问相应Action中的方法 -->
<constant name="struts.convention.action.mapAllMatches" value="true" />
<!-- 用于配置包路径。默认包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action类的路径来搜索。-->
<constant name="struts.convention.package.locators" value="action" />
<!-- Default parent package for action mappins 使用front转换器 -->
<constant name="struts.convention.default.parent.package" value="front" />
<!-- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts 2处理。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开 -->
<!-- 会导致Config Browser Plugin 无效-->
<constant name="struts.action.extension" value="3d" /> <!-- <package>元素可以把逻辑上相关的一组Action、Result、Intercepter等元素封装起来,形成一个独立的模块,package可以继承其他的package,也可以作为父包被其他的package继承,比如“<package name="helloworld" extends="struts-default">”中,helloworld这个包就继承了struts-default这个包。 -->
<!-- 没找到action -->
<package name="default" extends="struts-default"> <interceptors>
<interceptor-stack name="secureDefaultStack">
<interceptor-ref name="defaultStack">
<!-- 防止漏洞 -->
<param name="params.excludeParams">(.*\.|^|.*|\[('|"))(c|C)lass(\.|('|")]|\[).*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^action:.*,^method:.*</param>
</interceptor-ref>
</interceptor-stack>
</interceptors> <default-interceptor-ref name="secureDefaultStack" /> <default-action-ref name="notFound" />
<action name="notFound" class="com.maker.app.action.NotFoundAction">
<result name="success">/404.jsp</result>
<result name="error">/404.jsp</result>
<result name="input">/404.jsp</result>
</action> </package> <package name="base" extends="struts-default"> <result-types>
<result-type name="json" class="org.apache.struts2.json.JSONResult">
<param name="ignoreHierarchy">false</param>
<param name="excludeProperties">locale</param>
<param name="excludeNullProperties">true</param>
</result-type>
</result-types> <!-- 重新定义过滤器,配置方法级别的校验,注意如果改版本请从版本中取出struts-default.xml copy update -->
<interceptors>
<interceptor-stack name="defaultParentStack">
<interceptor-ref name="exception" />
<interceptor-ref name="alias" />
<interceptor-ref name="servletConfig" />
<interceptor-ref name="i18n" />
<interceptor-ref name="prepare" />
<interceptor-ref name="chain" />
<interceptor-ref name="scopedModelDriven" />
<interceptor-ref name="modelDriven" />
<interceptor-ref name="fileUpload" />
<interceptor-ref name="checkbox" />
<interceptor-ref name="multiselect" />
<interceptor-ref name="staticParams" />
<interceptor-ref name="actionMappingParams" />
<interceptor-ref name="params">
<param name="excludeParams">(.*\.|^|.*|\[('|"))(c|C)lass(\.|('|")]|\[).*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^action:.*,^method:.*</param>
</interceptor-ref>
<interceptor-ref name="conversionError" />
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse</param>
<!-- 配置方法级别的校验 -->
<param name="validateAnnotatedMethodOnly">true</param>
</interceptor-ref>
<interceptor-ref name="workflow">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-ref name="debugging" />
</interceptor-stack> <!-- The completeStack is here for backwards compatibility for applications
that still refer to the defaultStack by the old name -->
<interceptor-stack name="completeStack">
<interceptor-ref name="defaultStack" />
</interceptor-stack> <!-- Sample execute and wait stack. Note: execAndWait should always be
the *last* interceptor. -->
<interceptor-stack name="executeAndWaitStack">
<interceptor-ref name="execAndWait">
<param name="excludeMethods">input,back,cancel</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
<interceptor-ref name="execAndWait">
<param name="excludeMethods">input,back,cancel</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="defaultParentStack" /> </package> <!-- 前端默认包 -->
<package name="front" extends="default"> <result-types>
<result-type name="json" class="org.apache.struts2.json.JSONResult">
<param name="ignoreHierarchy">false</param>
<param name="excludeProperties">locale,texts,errorMessages,errors,fieldErrors</param>
<param name="excludeNullProperties">true</param>
</result-type>
</result-types> </package> </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. FFmpeg与libx264 x264接口源代码简单分析

    源代码位于“libavcodec/libx264.c”中.正是有了这部分代码,使得FFmpeg可以调用libx264编码H.264视频.  从图中可以看出,libx264对应的AVCodec结构体ff ...

  2. 《DSP using MATLAB》示例Example5.6

    代码: x = [1, 1, 1, 1]; N = 4; X_DFT = dft(x,N); % DFT of x(n) magX_DFT = abs(X_DFT), phaX_DFT = angle ...

  3. 《DSP using MATLAB》示例Example5.1

    终于看到第5章了,继续努力,加油!!! 代码: xn = [0, 1, 2, 3]; N =4; Xk = dfs(xn,N) 用到的dfs函数: function [Xk] = dfs(xn,N) ...

  4. DSP using MATLAB 示例 Example3.12

    用到的性质 代码: n = -5:10; x = sin(pi*n/2); k = -100:100; w = (pi/100)*k; % freqency between -pi and +pi , ...

  5. 实现窗体随着鼠标移动(控件)--《用delphi开发共享软件》-15.1任务管理器

    private //窗体移动: OldPos,NewPos:TPoint; bMove:Boolean; procedure TForm1.FormMouseDown(Sender: TObject; ...

  6. Dijkstra+计算几何 POJ 2502 Subway

    题目传送门 题意:列车上行驶40, 其余走路速度10.问从家到学校的最短时间 分析:关键是建图:相邻站点的速度是40,否则都可以走路10的速度.读入数据也很变态. #include <cstdi ...

  7. ural 2066. Simple Expression

    2066. Simple Expression Time limit: 1.0 secondMemory limit: 64 MB You probably know that Alex is a v ...

  8. 【转】如果成为一个牛比的BI售前

    转自:天善智能 没有最厉害,只有更厉害啊.也没有一定哪儿厉害,会因人定制各有不同啊.打个比方,如果你长得很庄重,年长,光头或布满银丝,然后以专业的态度,以饱满的激情去跟你客户宣讲,杀伤力巨大.所以,卖 ...

  9. ssh myeclipse的bug

    1 有时候复制完一个类的时候,myeclispe会少复制一些方法.很坑爹.复制的时候最好从新创建让后粘贴 2 有时候jsp页面经过修改该以后,在网页上显示的还是原来的页面,很坑爹.删掉tomcat然后 ...

  10. hiveserver2

    hiveserver2 默认绑定了ip:localhost 和 port:10000 !connect jdbc:hive2://localhost:10000  org.apache.hive.jd ...