配置格式:

struts>{constant,include,{package>action>result}}

<constant name="struts.objectFactory.spring.autoWire" value="name" />
<constant name="struts.objectFactory" value="spring" />
<include file="example.xml">
<package name="default" extends="struts-default" namespace="/user">
<action name="Login" class="com.sidi.test.LoginAction" method="login">
<result name="success" type="dispatcher">/result.jsp</result>
</action>
</package>

如何定义全局result

<global-results>
<result name="error">/404.jsp</result>
</global-results>

如何重定向redirect

<result type="redirectAction">Action2</result> 重定向到Action

<result type="redirect">/menu.jsp</result> 重定向到页面


如何映射.do?
<constant name="struts.action.extension" value="action,do" ></constant>

如何自动修改生效不用重新启动
<constant name="struts.configuration.xml.reload" value="true" />
----------------------------------
动态方法调用是指表单元素的action并不是直接等于某个Action的名字,而是以如下形式来指定Form的action属性:

<!-- action属性为actionName!methodName的形式 --> 
action="ActionName!methodName.action"

对于使用动态方法调用的方法,例如regist方法,该方法的方法声明与系统默认的execute方法的方法声明,只有方法名不同,其他方法参数,返回值类型都应该绝对相同。

注意:使用动态方法调用必须设置Struts2允许动态方法调用。开启系统的动态方法调用是通过设置struts.enable.DynamicMethodInvocation常量完成的,设置该常量的值为true,将开启动态方法调用;否则将关闭关闭动态方法调用。 
struts.enable.DynamicMethodInvocation=true //设置为启用

如何映射通配符
<action name="*User" class="com.sidi.test.ActionMethod" method="${1}" >
<result>/result.jsp</result>
</action>

运行的时候会把${1}的内容自动替换成URL中的*所对应的部分如:editUser.action-->调用Action类的edit()方法

<action name="*">
<result>/notice.html</result>
</action>

登录时如果要访问session或者要直接取参数怎么办
方式1:使用ActonContext(xwork内置对象),推荐使用
ActonContext.getContext()
ctx.getParameters() > Map < Strign key,String[] values>
ctx.getSession() > Map

方式2:使用ServletActioinContext(Struts2提供)访问Servlet相关的API
getRequest()
getSession()
继承自ActionContext

如何定义全局错误信息

在Struts.xml里面加上如下
<struts>
    <constant name="struts.custom.i18n.resources" value="message"></constant>
    
     <package。。。

[注意:]struts.xml里面可以包含另外的配置文件,这个在大型项目里面是非常重要的.
这儿的<constant name="struts.custom.i18n.resources" value="message"></constant>
表示替换,将struts的错误信息资源文件替换成你自己的属性文件,然后需要新建一个message.properties文件,写下面的信息
xwork.default.invalid.fieldvalue={0} error
然后再重新启动服务器

native2ascii ApplicationResources_cn.txt ApplicationResources.properties