<!DOCTYPE struts PUBLIC
??? "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
??? "
http://struts.apache.org/dtds/struts-2.0.dtd
">
<struts>
??? <package name="ajax" extends="struts-default">
??????? <action name="AjaxTest" class="ajax.AjaxTestAction">
??????????? <result>/ajax/AjaxResult.jsp</result>
??????? </action>
?? <action name="Test3">
??????????? <result>/ajax/testjs.jsp</result>
??????? </action>
??????? <action name="JSONList">
???????????
<result>/ajax/JSONList.js</result>
??????? </action>
??? </package>
</struts>
?
<result type="velocity">example.vm</result>
<result type="freemarker">/tree/treeExampleAjaxDynamic.ftl</result>
?
?<package name="ajax" extends="struts-default">???
<action name="getNodes
" class="ajax.tree.ShowAjaxDynamicTreeAction">
??????????? <result>/tree/treeExampleAjaxDynamic.jsp</result>
??????? </action>
???????
??????? <!--
http://localhost:8080/struts2-ajax/showDynamicAjaxTreeAction.action
訪問(wèn)ajax tree -->
???????
<action name="showDynamicAjaxTreeAction"> //沒(méi)有class直接到j(luò)sp頁(yè)面
??????????? <result>/tree/treeExampleAjaxDynamic.jsp</result>
??????? </action>
??? </package>
??
??? <package name="ajaxNoDecorate" namespace="/nodecorate" extends="struts-default">
?????????? //不同的namespace,相同的action,使用時(shí)需要在s:url中指定namespace
????
?
<action name="getNodes"
class="ajax.tree.ShowAjaxDynamicTreeAction">
??????????? <result type="freemarker">/tree/treeExampleAjaxDynamic.ftl</result>
??????? </action>
??? </package>
?
<action name="showGeneratorTagDemo" class="org.apache.struts2.showcase.tag.nonui.iteratortag.IteratorGeneratorTagDemo"
method="input">
在action中指定method,需要在Action中:
public String
input
() throws Exception {
??????? return SUCCESS;
??? }
?
<action name="
tokenPrepare
!*
" class="org.apache.struts2.showcase.token.TokenAction" method
="{1}">
??????????
? <interceptor-ref
name="defaultStack"/>
??????????? <result name="input">example1.jsp</result>
??????? </action>
?
在
struts.xml文件中,使用constant元素
。下面是這個(gè)文件中一些常見(jiàn)的配置項(xiàng)及說(shuō)明。
###?指定加載struts2配置文件管理器,默認(rèn)為org.apache.struts2.config.DefaultConfiguration
###?開發(fā)者可以自定義配置文件管理器,該類要實(shí)現(xiàn)Configuration接口,可以自動(dòng)加載struts2配置文件。
#?struts.configuration=org.apache.struts2.config.DefaultConfiguration
###?設(shè)置默認(rèn)的locale和字符編碼
#?struts.locale=en_US
struts.i18n.encoding=UTF-8
###?指定struts的工廠類
#?struts.objectFactory?=?spring
###?指定spring框架的裝配模式
###?裝配方式有:?name,?type,?auto,?and?constructor?(name?是默認(rèn)裝配模式)
struts.objectFactory.spring.autoWire?=?name
###?該屬性指定整合spring時(shí),是否對(duì)bean進(jìn)行緩存,值為true?or?false,默認(rèn)為true.
struts.objectFactory.spring.useClassCache?=?true
###?指定類型檢查
#struts.objectTypeDeterminer?=?tiger
#struts.objectTypeDeterminer?=?notiger
###?該屬性指定處理?MIME-type?multipart/form-data,
文件上傳
#?struts.multipart.parser=cos
#?struts.multipart.parser=pell
struts.multipart.parser=jakarta
#?指定上傳文件時(shí)的臨時(shí)目錄,默認(rèn)使用?javax.servlet.context.tempdir?
struts.multipart.saveDir=
struts.multipart.maxSize=2097152
###?加載自定義屬性文件?(不要改寫struts.properties!)
#?struts.custom.properties=application,org/apache/struts2/extension/custom
###?指定請(qǐng)求url與action映射器,默認(rèn)為org.apache.struts2.dispatcher.mapper.DefaultActionMapper
#struts.mapper.class=org.apache.struts2.dispatcher.mapper.DefaultActionMapper
###?指定action的后綴,默認(rèn)為action
struts.action.extension=action
###?被?FilterDispatcher使用
###?如果為?true?則通過(guò)jar文件提供靜態(tài)內(nèi)容服務(wù).?
###?如果為?false?則靜態(tài)內(nèi)容必須位于?<context_path>/struts
struts.serve.static=true
###?被?FilterDispatcher使用
###?指定瀏覽器是否緩存靜態(tài)內(nèi)容,測(cè)試階段設(shè)置為false,發(fā)布階段設(shè)置為true.
struts.serve.static.browserCache=true
###?設(shè)置是否支持動(dòng)態(tài)方法調(diào)用,true為支持,false不支持.
struts.enable.DynamicMethodInvocation?=?true
###?設(shè)置是否可以在action中使用斜線,默認(rèn)為false不可以,想使用需設(shè)置為true.
struts.enable.SlashesInActionNames?=?false
###?是否允許使用表達(dá)式語(yǔ)法,默認(rèn)為true.
struts.tag.altSyntax=true
###?設(shè)置當(dāng)struts.xml文件改動(dòng)時(shí),是否重新加載.
###?-?struts.configuration.xml.reload?=?true
###?設(shè)置struts是否為開發(fā)模式,默認(rèn)為false,測(cè)試階段一般設(shè)為true.
struts.devMode?=?false
###?設(shè)置是否每次請(qǐng)求,都重新加載資源文件,默認(rèn)值為false.
struts.i18n.reload=false
###標(biāo)準(zhǔn)的UI主題
###?默認(rèn)的UI主題為xhtml,可以為simple,xhtml或ajax
struts.ui.theme=xhtml
###模板目錄
struts.ui.templateDir=template
#設(shè)置模板類型.?可以為?ftl,?vm,?or?jsp
struts.ui.templateSuffix=ftl
###定位velocity.properties?文件.??默認(rèn)?velocity.properties
struts.velocity.configfile?=?velocity.properties
###?設(shè)置velocity的context.
struts.velocity.contexts?=
###?定位toolbox.
struts.velocity.toolboxlocation=
###?指定web應(yīng)用的端口.
struts.url.http.port?=?80
###?指定加密端口
struts.url.https.port?=?443
###?設(shè)置生成url時(shí),是否包含參數(shù).值可以為:?none,?get?or?all
struts.url.includeParams?=?get
###?設(shè)置要加載的國(guó)際化資源文件,以逗號(hào)分隔.
#?struts.custom.i18n.resources=testmessages,testmessages2
###?對(duì)于一些web應(yīng)用服務(wù)器不能處理HttpServletRequest.getParameterMap()
###?像?WebLogic,?Orion,?and?OC4J等,須設(shè)置成true,默認(rèn)為false.
struts.dispatcher.parametersWorkaround?=?false
###?指定freemarker管理器
#struts.freemarker.manager.classname=org.apache.struts2.views.freemarker.FreemarkerManager
###?設(shè)置是否對(duì)freemarker的模板設(shè)置緩存
###?效果相當(dāng)于把template拷貝到?WEB_APP/templates.
struts.freemarker.templatesCache=false
###?通常不需要修改此屬性.
struts.freemarker.wrapper.altMap=true
###?指定xslt?result是否使用樣式表緩存.開發(fā)階段設(shè)為true,發(fā)布階段設(shè)為false.
struts.xslt.nocache=false
###?設(shè)置struts自動(dòng)加載的文件列表.
struts.configuration.files=struts-default.xml,struts-plugin.xml,struts.xml
###?設(shè)定是否一直在最后一個(gè)slash之前的任何位置選定namespace.
struts.mapper.alwaysSelectFullNamespace=false
struts.xml