struts2 配置文件

本文详细解析了Struts2框架的配置文件struts.xml及struts.properties,包括包配置、拦截器、Action映射等内容,并介绍了如何通过struts.properties配置Struts2的行为特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主配置文件struts.xml
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd" >
<struts>

    
<!-- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 -->
    
<include file="struts-default.xml"></include>
    
    
    
<!-- package提供了将多个Action组织为一个模块的方式
        package的名字必须是唯一的 package可以扩展 当一个package扩展自
        另一个package时该package会在本身配置的基础上加入扩展的package
        的配置 父package必须在子package前配置 
        name:package名称
        extends:继承的父package名称
        abstract:设置package的属性为抽象的 抽象的package不能定义action 值true:false
        namespace:定义package命名空间 该命名空间影响到url的地址,例如此命名空间为/test那么访问是的地址为http://localhost:8080/struts2/test/XX.action
     
-->
    
<package name="com.kay.struts2" extends="struts-default" namespace="/test">
        
<interceptors>
            
<!-- 定义拦截器 
                name:拦截器名称
                class:拦截器类路径
             
-->
            
<interceptor name="timer" class="com.kay.timer"></interceptor>
            
<interceptor name="logger" class="com.kay.logger"></interceptor>
            
<!-- 定义拦截器栈 -->
            
<interceptor-stack name="mystack">
                
<interceptor-ref name="timer"></interceptor-ref>
                
<interceptor-ref name="logger"></interceptor-ref>
            
</interceptor-stack>
        
</interceptors>
        
        
<!-- 定义默认的拦截器 每个Action都会自动引用
         如果Action中引用了其它的拦截器 默认的拦截器将无效 
-->
        
<default-interceptor-ref name="mystack"></default-interceptor-ref>
        
        
        
<!-- 全局results配置 -->
        
<global-results>
            
<result name="input">/error.jsp</result>
        
</global-results>
        
        
<!-- Action配置 一个Action可以被多次映射(只要action配置中的name不同)
             name:action名称
             class: 对应的类的路径
             method: 调用Action中的方法名
        
-->
        
<action name="hello" class="com.kay.struts2.Action.LoginAction">
            
<!-- 引用拦截器
                name:拦截器名称或拦截器栈名称
             
-->
            
<interceptor-ref name="timer"></interceptor-ref>
        
            
<!-- 节点配置
                name : result名称 和Action中返回的值相同
                type : result类型 不写则选用superpackage的type struts-default.xml中的默认为dispatcher
             
-->
         
<result name="success" type="dispatcher">/talk.jsp</result>
         
<!-- 参数设置 
             name:对应Action中的get/set方法 
         
-->
         
<param name="url">http://www.sina.com</param>
        
</action>
    
</package>
</struts>

主次文件分离,将开关放在次配置文件struts.properties

struts.serve.static.browserCache 该属性设置浏览器是否缓存静态内容。当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设置该属性为false。

struts.enable.DynamicMethodInvocation 该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。

struts.enable.SlashesInActionNames 该属性设置Struts 2是否允许在Action名中使用斜线,该属性的默认值是false。如果开发者希望允许在Action名中使用斜线,则可设置该属性为true。

struts.tag.altSyntax 该属性指定是否允许在Struts 2标签中使用表达式语法,因为通常都需要在标签中使用表达式语法,故此属性应该设置为true,该属性的默认值是true。

struts.devMode该属性设置Struts 2应用是否使用开发模式。如果设置该属性为true,则可以在应用出错时显示更多、更友好的出错提示。该属性只接受true和flase两个值,该属性的默认值是false。通常,应用在开发阶段,将该属性设置为true,当进入产品发布阶段后,则该属性设置为false。

struts.i18n.reload该属性设置是否每次HTTP请求到达时,系统都重新加载资源文件。该属性默认值是false。在开发阶段将该属性设置为true会更有利于开发,但在产品发布阶段应将该属性设置为false。

提示 开发阶段将该属性设置了true,将可以在每次请求时都重新加载国际化资源文件,从而可以让开发者看到实时开发效果;产品发布阶段应该将该属性设置为false,是为了提供响应性能,每次请求都需要重新加载资源文件会大大降低应用的性能。

struts.ui.theme该属性指定视图标签默认的视图主题,该属性的默认值是xhtml。

struts.ui.templateDir该属性指定视图主题所需要模板文件的位置,该属性的默认值是template,即默认加载template路径下的模板文件。

struts.ui.templateSuffix该属性指定模板文件的后缀,该属性的默认属性值是ftl。该属性还允许使用ftl、vm或jsp,分别对应FreeMarker、Velocity和JSP模板。

struts.configuration.xml.reload该属性设置当struts.xml文件改变后,系统是否自动重新加载该文件。该属性的默认值是false。

struts.velocity.configfile该属性指定Velocity框架所需的velocity.properties文件的位置。该属性的默认值为velocity.properties。

struts.velocity.contexts该属性指定Velocity框架的Context位置,如果该框架有多个Context,则多个Context之间以英文逗号(,)隔开。

struts.velocity.toolboxlocation该属性指定Velocity框架的toolbox的位置。

struts.url.http.port该属性指定Web应用所在的监听端口。该属性通常没有太大的用户,只是当Struts 2需要生成URL时(例如Url标签),该属性才提供Web应用的默认端口。

struts.url.https.port该属性类似于struts.url.http.port属性的作用,区别是该属性指定的是Web应用的加密服务端口。

struts.url.includeParams该属性指定Struts 2生成URL时是否包含请求参数。该属性接受none、get和all三个属性值,分别对应于不包含、仅包含GET类型请求参数和包含全部请求参数。


struts.custom.i18n.resources该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开。


struts.dispatcher.parametersWorkaround 对于某些Java EE服务器,不支持HttpServlet Request调用getParameterMap()方法,此时可以设置该属性值为true来解决该问题。该属性的默认值是false。对于WebLogic、Orion和OC4J服务器,通常应该设置该属性为true。

struts.freemarker.manager.classname 该属性指定Struts 2使用的FreeMarker管理器。该属性的默认值是org.apache.struts2.views.freemarker.FreemarkerManager,这是Struts 2内建的FreeMarker管理器。

struts.freemarker.wrapper.altMap该属性只支持true和false两个属性值,默认值是true。通常无需修改该属性值。

struts.xslt.nocache 该属性指定XSLT Result是否使用样式表缓存。当应用处于开发阶段时,该属性通常被设置为true;当应用处于产品使用阶段时,该属性通常被设置为false。

struts.configuration.files 该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开。该属性的默认值为struts-default.xml,struts-plugin.xml,struts.xml,看到该属性值,读者应该明白为什么Struts 2框架默认加载struts.xml文件了。


这里有一个struts.properties

# struts.configuration=org.apache.struts2.config.DefaultConfiguration

# struts.locale=en_US

struts.i18n.encoding=UTF-8

struts.objectFactory = spring

struts.objectFactory.spring.autoWire = name

struts.objectFactory.spring.useClassCache = true

#struts.objectTypeDeterminer = tiger

#struts.objectTypeDeterminer = notiger

# struts.multipart.parser=cos

# struts.multipart.parser=pell

struts.multipart.parser=jakarta

# uses javax.servlet.context.tempdir by default

struts.multipart.saveDir=

#struts.multipart.maxSize=20971520

#struts.multipart.maxSize=1073741900

#struts.multipart.maxSize=31457280

#struts.multipart.maxSize=104857600

struts.multipart.maxSize=524288000

struts.mapper.class=org.apache.struts2.dispatcher.mapper.DefaultActionMapper

struts.action.extension=ies

struts.serve.static=true

struts.serve.static.browserCache=true

struts.tag.altSyntax=true

struts.devMode = false

struts.i18n.reload=false

struts.ui.theme=simple

struts.ui.templateDir=template

#sets the default template type. Either ftl, vm, or jsp

struts.ui.templateSuffix=ftl

struts.configuration.xml.reload=false

# struts.velocity.configfile = velocity.properties

# struts.velocity.contexts =

struts.url.http.port = 80

struts.url.https.port = 443

struts.custom.i18n.resources=globalmessages

struts.dispatcher.parametersWorkaround = false

#struts.freemarker.manager.classname=org.apache.struts2.views.freemarker.FreemarkerManager

struts.freemarker.wrapper.altMap=true

struts.xslt.nocache=false

#To enable static method access set the struts2 constant.

struts.ognl.allowStaticMethodAccess=true 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值