struts.xml跟default.properties
1)
该文件也是struts2框架自动加载的文件,在这个文件中可以定义一些自己的action,interceptor,package等,该文件的package
struts.properties文件
<!--
<!DOCTYPE
"-//Apache
"http://struts.apache.org/dtds/struts-2.0.dtd"
<!--
<struts>
<!--
<constant
<!--
<bean
<!--
<include
<!--
<package
externalReferenceResolve
<!--
<result-types>
<!--
<result-type
<!--
<param
</result-type>
</result-types>
<!--
<interceptors>
<!--
也可以二者都出现
<!--
<interceptor
<!--
<param
</interceptor>
<!--
<interceptor-stack
<!--
<interceptor-ref
<!--
<param
</interceptor-ref>
</interceptor-stack>
</interceptors>
<!--
<default-interceptor-ref
<!--
<param
</default-interceptor-ref>
<!--
<default-action-ref
<!--
<param
</default-action-ref>?
<!--
<global-results>
<!--
<result
<!--
映射资源
<!--
<param
</result>
</global-results>
<!--
<global-exception-mappings>
<!--
<exception-mapping
异常处理资源
<!--
<param
</exception-mapping>
</global-exception-mappings>
<action
<!--
<param
<!--
<result
映射资源
<!--
<param
</result>
<!--
<interceptor-ref
<!--
<param
</interceptor-ref>
<!--
<exception-mapping
异常处理资源
<!--
<param
</exception-mapping>
</action>
</package>*
<struts>
2)
这个文件是struts2框架的全局属性文件,也是自动加载的文件。该文件包含了系列的key-value对。该文件完全可以配置在struts.xml文件中,使用constant元素。下面是这个文件中一些常见的配置项及说明。
###
###
#
###
#
struts.i18n.encoding=UTF-8
###
#
###
###
struts.objectFactory.spring.autoWire
###
struts.objectFactory.spring.useClassCache
###
#struts.objectTypeDeterminer
#struts.objectTypeDeterminer
###
#
#
struts.multipart.parser=jakarta
#
struts.multipart.saveDir
struts.multipart.maxSize=2097152
###
#
###
#struts.mapper.class
###
struts.action.extension
###
###
###
struts.serve.static
###
###
struts.serve.static.browserCache
###
struts.enable.DynamicMethodInvocation
###
struts.enable.SlashesInActionNames
###
struts.tag.altSyntax
###
###
###
struts.devMode
###
struts.i18n.reload
###标准的UI主题
###
struts.ui.theme=xhtml
###模板目录
struts.ui.templateDir=template
#设置模板类型.
struts.ui.templateSuffix
###定位velocity.properties
struts.velocity.configfile
###
struts.velocity.contexts
###
struts.velocity.toolboxlocation
###
struts.url.http.port
###
struts.url.https.port
###
struts.url.includeParams
###
#
###
###
struts.dispatcher.parametersWorkaround
###
#struts.freemarker.manager.classname
###
###
struts.freemarker.templatesCache
###
struts.freemarker.wrapper.altMap
###
struts.xslt.nocache=false
###
struts.configuration.files
###
struts.mapper.alwaysSelectFullNamespac
补充一点:
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” />