在struts.xml中可以定义bean,include,package,constant
bean 配置组件,可参考
(struts.xml文件之Bean的配置)http://blog.163.com/artsn@126/blog/static/36533281201111511381316/
include 把其他配置文件包含进来,可以避免一个struts.xml中内容过多导致不便维护和开发.
constant 设置struts2的常量 和在struts.properties中一样 也可以在web.xml中设置
参考:
struts.xml文件之常量的配置http://blog.163.com/artsn@126/blog/static/3653328120111150503558/
struts2常量详解http://riddickbryant.iteye.com/blog/557373
package 功能的集合 action
包含:(result-types?,interceptors?, default-interceptor-ref?, default-action-ref?, default-
class-ref?, global-results?,global-exception-mappings?, action*)
package的几个注意点:
name不可以重复,仅仅是个标识,类似id便与让其他包使用例如继承
namespace 不填写默认为“”,“”表示是默认的命名空间,多个包可以有相同的命名空间。在一个命名空间中不能有相同名字的action
先举个几个例子
页面发出请求/test/hello.action,
struts2会在命名空间名字为/test中找名字为hello的action
如果找不到就在默认的命名空间“”中,找名字为 hello的action
如果还还找不到,就报错
页面发出请求/test/book/hello/abc/hello.action,
那么struts2会在命名空间名字为/test/book/hello/abc中找名字为hello的action,
如果找不到就在默认的命名空间“”中,找名字为 hello的action,
如果还还找不到,就报错
页面发出请求/hello.action
那么struts2会在命名空间名字为/中找名字为hello的action
如果找不到就在默认的命名空间“”中,找名字为 hello的action,
如果还还找不到,就报错
(通常把命名空间为“/”的叫根命名空间)
result-types 结果处理类型,可以自己添加,一般不用,直接使用struts-default中的即可,
关于那些结果类型的介绍:参考http://blog.csdn.net/thunder_1985/article/details/4551071
如果返回类型是json,那么参考http://yshjava.iteye.com/blog/1333104
基于Struts2Result Type为chain的Action之间数据传递
http://wenku.baidu.com/view/0ce52969a98271fe910ef9f4.html
interceptors 拦截器
default-interceptor-ref 默认的拦截器,如果不写,默认是父包中默认的拦截器
default-action-ref 默认的action,如果不写,那么找不到action时就出错
default- class-ref action标签不写class属性时默认的class,如果不配置,那么默认是ActionSupport返回”success”
global-results 该包中全局的结果,便于多个action返回相同的结果
global-exception-mappings 异常的处理 http://www.cnblogs.com/codeplus/archive/2011/07/16/2107999.html
action