struts.xml跟default.properties

struts.xml和default.properties
        1)struts.xml

该文件也是struts2框架自动加载的文件,在这个文件中可以定义一些自己的action,interceptorpackage等,该文件的package 通常继承struts-default包。下面是这个文件的格式。

struts.properties文件

struts.xml跟default.properties<?xml version="1.0" encoding="GBK"?>
struts.xml跟default.properties
<!-- 下面指定Struts 2配置文件的DTD信息 -->
struts.xml跟default.properties
<!DOCTYPE struts PUBLIC
struts.xml跟default.properties "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
struts.xml跟default.properties "http://struts.apache.org/dtds/struts-2.0.dtd"
>

struts.xml跟default.properties
<!-- struts是Struts 2配置文件的根元素 -->
struts.xml跟default.properties
<struts>
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<constant name="" value="" />
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<bean type="" name="" class="" scope="" static="" optional="" />
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<include file="" />
struts.xml跟default.properties
<!-- package元素是Struts配置文件的核心,该元素可以出现0次,或者无限多次 -->
struts.xml跟default.properties
<package name="必填的包名" extends="" namespace="" abstract=""
struts.xml跟default.properties externalReferenceResolver
>
struts.xml跟default.properties
<!-- 该元素可以出现,也可以不出现,最多出现一次 -->
struts.xml跟default.properties
<result-types>
struts.xml跟default.properties
<!-- 该元素必须出现,可以出现无限多次-->
struts.xml跟default.properties
<result-type name="" class="" default="true|false">
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<param name="参数名">参数值</param>*
struts.xml跟default.properties
</result-type>

struts.xml跟default.properties
</result-types>
struts.xml跟default.properties
<!-- 该元素可以出现,也可以不出现,最多出现一次 -->
struts.xml跟default.properties
<interceptors>
struts.xml跟default.properties
<!-- 该元素的interceptor元素和interceptor-stack至少出现其中之一,
struts.xml跟default.properties 也可以二者都出现 
-->

struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<interceptor name="" class="">
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<param name="参数名">参数值</param>*
struts.xml跟default.properties
</interceptor>

struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<interceptor-stack name="">
struts.xml跟default.properties
<!-- 该元素必须出现,可以出现无限多次-->
struts.xml跟default.properties
<interceptor-ref name="">
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<param name="参数名">参数值</param>*
struts.xml跟default.properties
</interceptor-ref>

struts.xml跟default.properties
</interceptor-stack>
struts.xml跟default.properties
</interceptors>
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<default-interceptor-ref name="">
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<param name="参数名">参数值</param>
struts.xml跟default.properties
</default-interceptor-ref>
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<default-action-ref name="">
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<param name="参数名">参数值</param>*
struts.xml跟default.properties
</default-action-ref>
?
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->

struts.xml跟default.properties
<global-results>
struts.xml跟default.properties
<!-- 该元素必须出现,可以出现无限多次-->
struts.xml跟default.properties
<result name="" type="">
struts.xml跟default.properties
<!-- 该字符串内容可以出现0次或多次 -->
struts.xml跟default.properties 映射资源
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<param name="参数名">参数值</param>*
struts.xml跟default.properties
</result>

struts.xml跟default.properties
</global-results>
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<global-exception-mappings>
struts.xml跟default.properties
<!-- 该元素必须出现,可以出现无限多次-->
struts.xml跟default.properties
<exception-mapping name="" exception="" result="">
struts.xml跟default.properties 异常处理资源
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<param name="参数名">参数值</param>*
struts.xml跟default.properties
</exception-mapping>

struts.xml跟default.properties
</global-exception-mappings>
struts.xml跟default.properties
<action name="" class="" method="" converter="">
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<param name="参数名">参数值</param>*
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->

struts.xml跟default.properties
<result name="" type="">
struts.xml跟default.properties 映射资源
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<param name="参数名">参数值</param>*
struts.xml跟default.properties
</result>

struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<interceptor-ref name="">
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<param name="参数名">参数值</param>*
struts.xml跟default.properties
</interceptor-ref>

struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<exception-mapping name="" exception="" result="">
struts.xml跟default.properties 异常处理资源
struts.xml跟default.properties
<!-- 下面元素可以出现0次,也可以无限多次 -->
struts.xml跟default.properties
<param name="参数名">参数值</param>*
struts.xml跟default.properties
</exception-mapping>

struts.xml跟default.properties
</action>
struts.xml跟default.properties
</package>*
struts.xml跟default.properties
<struts>

struts.xml跟default.properties
struts.xml跟default.properties


2) default.properties

这个文件是struts2框架的全局属性文件,也是自动加载的文件。该文件包含了系列的key-value对。该文件完全可以配置在struts.xml文件中,使用constant元素。下面是这个文件中一些常见的配置项及说明。
 

struts.xml跟default.properties
struts.xml跟default.properties
struts.xml跟default.properties ### 指定加载struts2配置文件管理器,默认为org.apache.struts2.config.DefaultConfiguration
struts.xml跟default.properties ### 开发者可以自定义配置文件管理器,该类要实现Configuration接口,可以自动加载struts2配置文件。
struts.xml跟default.propertiesstruts.configuration
=org.apache.struts2.config.DefaultConfiguration
struts.xml跟default.properties
struts.xml跟default.properties ### 设置默认的locale和字符编码
struts.xml跟default.propertiesstruts.locale
=
en_US
struts.xml跟default.properties struts.i18n.encoding
=UTF-8

struts.xml跟default.properties
struts.xml跟default.properties
struts.xml跟default.properties ### 指定struts的工厂类
struts.xml跟default.propertiesstruts.objectFactory 
= spring
struts.xml跟default.properties
struts.xml跟default.properties ### 指定spring框架的装配模式
struts.xml跟default.properties ### 装配方式有: name
, type, auto,
 and constructor (name 是默认装配模式)
struts.xml跟default.properties struts.objectFactory.spring.autoWire 
=
 name
struts.xml跟default.properties
struts.xml跟default.properties ### 该属性指定整合spring时,是否对bean进行缓存,值为true or false
,
默认为true.
struts.xml跟default.properties struts.objectFactory.spring.useClassCache 
=
 true
struts.xml跟default.properties
struts.xml跟default.properties ### 指定类型检查
struts.xml跟default.properties #struts.objectTypeDeterminer 
=
 tiger
struts.xml跟default.properties #struts.objectTypeDeterminer 
=
 notiger
struts.xml跟default.properties
struts.xml跟default.properties ### 该属性指定处理 MIME-type multipart/form-data,文件上传
struts.xml跟default.propertiesstruts.multipart.parser
=
cos
struts.xml跟default.propertiesstruts.multipart.parser
=
pell
struts.xml跟default.properties struts.multipart.parser
=
jakarta
struts.xml跟default.properties指定上传文件时的临时目录,默认使用 javax.servlet.context.tempdir 
struts.xml跟default.properties struts.multipart.saveDir
=

struts.xml跟default.properties struts.multipart.maxSize
=2097152
struts.xml跟default.properties
struts.xml跟default.properties ### 加载自定义属性文件 (不要改写struts.properties!)
struts.xml跟default.propertiesstruts.custom.properties
=application,org/apache/struts2/extension/custom
struts.xml跟default.properties
struts.xml跟default.properties ### 指定请求url与action映射器,默认为org.apache.struts2.dispatcher.mapper.DefaultActionMapper
struts.xml跟default.properties #struts.mapper.class
=
org.apache.struts2.dispatcher.mapper.DefaultActionMapper
struts.xml跟default.properties
struts.xml跟default.properties ### 指定action的后缀,默认为action
struts.xml跟default.properties struts.action.extension
=
action
struts.xml跟default.properties
struts.xml跟default.properties ### 被 FilterDispatcher使用
struts.xml跟default.properties ### 如果为 true 则通过jar文件提供静态内容服务. 
struts.xml跟default.properties ### 如果为 false 则静态内容必须位于 <context_path>/struts
struts.xml跟default.properties struts.serve.static
=
true
struts.xml跟default.properties
struts.xml跟default.properties ### 被 FilterDispatcher使用
struts.xml跟default.properties ### 指定浏览器是否缓存静态内容,测试阶段设置为false,发布阶段设置为true.
struts.xml跟default.properties struts.serve.static.browserCache
=
true
struts.xml跟default.properties
struts.xml跟default.properties ### 设置是否支持动态方法调用,true为支持,false不支持.
struts.xml跟default.properties struts.enable.DynamicMethodInvocation 
=
 true
struts.xml跟default.properties
struts.xml跟default.properties ### 设置是否可以在action中使用斜线,默认为false不可以,想使用需设置为true.
struts.xml跟default.properties struts.enable.SlashesInActionNames 
=
 false
struts.xml跟default.properties
struts.xml跟default.properties ### 是否允许使用表达式语法,默认为true.
struts.xml跟default.properties struts.tag.altSyntax
=
true
struts.xml跟default.properties
struts.xml跟default.properties
struts.xml跟default.properties ### 设置当struts.xml文件改动时,是否重新加载.
struts.xml跟default.properties ### struts.configuration.xml.reload 
=
 true
struts.xml跟default.properties ### 设置struts是否为开发模式,默认为false
,
测试阶段一般设为true.
struts.xml跟default.properties struts.devMode 
=
 false
struts.xml跟default.properties
struts.xml跟default.properties ### 设置是否每次请求,都重新加载资源文件,默认值为false.
struts.xml跟default.properties struts.i18n.reload
=
false
struts.xml跟default.properties
struts.xml跟default.properties ###标准的UI主题
struts.xml跟default.properties ### 默认的UI主题为xhtml
,可以为simple,
xhtml或ajax
struts.xml跟default.properties struts.ui.theme
=
xhtml
struts.xml跟default.properties ###模板目录
struts.xml跟default.properties struts.ui.templateDir
=
template
struts.xml跟default.properties #设置模板类型. 可以为 ftl
, vm,
 or jsp
struts.xml跟default.properties struts.ui.templateSuffix
=
ftl
struts.xml跟default.properties
struts.xml跟default.properties ###定位velocity.properties 文件.  默认 velocity.properties
struts.xml跟default.properties struts.velocity.configfile 
=
 velocity.properties
struts.xml跟default.properties
struts.xml跟default.properties ### 设置velocity的context.
struts.xml跟default.properties struts.velocity.contexts 
=

struts.xml跟default.properties
struts.xml跟default.properties ### 定位toolbox.
struts.xml跟default.properties struts.velocity.toolboxlocation
=
struts.xml跟default.properties
struts.xml跟default.properties ### 指定web应用的端口.
struts.xml跟default.properties struts.url.http.port 
= 80
struts.xml跟default.properties ### 指定加密端口
struts.xml跟default.properties struts.url.https.port 
= 443
struts.xml跟default.properties ### 设置生成url时,是否包含参数.值可以为: none
, get or all
struts.xml跟default.properties struts.url.includeParams 
=
 get
struts.xml跟default.properties
struts.xml跟default.properties ### 设置要加载的国际化资源文件,以逗号分隔.
struts.xml跟default.propertiesstruts.custom.i18n.resources
=testmessages,
testmessages2
struts.xml跟default.properties
struts.xml跟default.properties ### 对于一些web应用服务器不能处理HttpServletRequest.getParameterMap()
struts.xml跟default.properties ### 像 WebLogic
, Orion, and OC4J等,须设置成true,
默认为false.
struts.xml跟default.properties struts.dispatcher.parametersWorkaround 
=
 false
struts.xml跟default.properties
struts.xml跟default.properties ### 指定freemarker管理器
struts.xml跟default.properties #struts.freemarker.manager.classname
=
org.apache.struts2.views.freemarker.FreemarkerManager
struts.xml跟default.properties
struts.xml跟default.properties ### 设置是否对freemarker的模板设置缓存
struts.xml跟default.properties ### 效果相当于把template拷贝到 WEB_APP/templates.
struts.xml跟default.properties struts.freemarker.templatesCache
=
false
struts.xml跟default.properties
struts.xml跟default.properties ### 通常不需要修改此属性.
struts.xml跟default.properties struts.freemarker.wrapper.altMap
=
true
struts.xml跟default.properties
struts.xml跟default.properties ### 指定xslt result是否使用样式表缓存.开发阶段设为true
,
发布阶段设为false.
struts.xml跟default.properties struts.xslt.nocache
=
false
struts.xml跟default.properties
struts.xml跟default.properties ### 设置struts自动加载的文件列表.
struts.xml跟default.properties struts.configuration.files
=struts-default.xml,struts-plugin.xml,
struts.xml
struts.xml跟default.properties
struts.xml跟default.properties ### 设定是否一直在最后一个slash之前的任何位置选定namespace.
struts.xml跟default.properties struts.mapper.alwaysSelectFullNamespace
=false

补充一点:

a)default.properties文件在struts2-core-2.3.15.3.jar中的org.apache.struts2目录下,大家可以在项目的引用包中打开。

b)struts.i18n.encoding=UTF-8Struts2默认的编码类型是UTF-8。编码问题很恶心的,所以在编码统一时会使用。

c)struts.objectFactory = spring

Struts中action创建都是由对应的工厂创建。Struts自己提供了这样的一个工厂。当struts和spring进行整合后,这些action就交给spring进行打理。

后期框架整合时会用到。

d)struts.multipart.parser=jakartaStruts的默认文件上传包,此处指定的是jakarta,即默认使用apache的fileupload组件。除非使用cos或pell才会修改。

e)struts.action.extension=action,,表单提交或者url请求时地址的后缀。我们可以自行修改,但一般不用。没什么实际意义。项目真正上线,我们会对网站使用伪静态。以后的博文会讲。

f)struts.enable.DynamicMethodInvocation = false

动态方法调用。例如: http://....action!myMthod 。但一般不会使用,因为它会暴露我们执行的方法名称,不太安全。

g)struts.devMode = false开发模式。将一些警告信息转为错误信息,告诉开发者出现了什么样的问题。开始时改为true,发布时必须改为false。

h)struts.i18n.reload=false对于开发来讲还是必将重要的。设置为true时,在每次请求时,资源包就会被重载。 resource bundles里面有个缓存,如果请求时,都会去缓存找,有则拿出来,而我们开发时,资源包是不断修改的,所以要禁止缓存避免影响开发调试。

i)struts.configuration.xml.reload=false设置为true时,我们每次修改struts.xml文件后,框架会自动加载这个文件。

j)struts.ognl.allowStaticMethodAccess=false页面使用静态方法。通过ognl标签调用值栈action中的方法。

k)Default.properties是不能直接修改的,我们如果要修改,有两种方式

1、在src下创建struts.properties

例如:struts.enable.DynamicMethodInvocation = true

2、在struts.xml中配置(推荐使用)

例如:<constant name=”struts.ognl.allowStaticMethodAccess” value=”true” />