struts1.1与1.0相比,给予团队开发很大的支持。这主要体现在它现在可以使用多个配置文件。使用多个配置文件,有两种方式:
config
/WEB-INF/struts-config.xml,
config
/WEB-INF/struts-config.xml
config/customer
/WEB-INF/struts-config-customer.xml
config/order
/WEB-INF/struts-config-order.xml
其中,webapp是web应用名,order是模块名,logon是该模块的一个action。要注意的是,当设置一个模块后,struts会默认该模块的目录,如上,模块名是order,那么struts会认为该模块处在order目录下。即,该web应用的目录结构是这样:
forward="/../jsp/order/logon.jsp" />
1、在web.xml中以逗号分隔来配置多个config文件。这是对多模块开发的简单支持,每个开发人员可以配置自己config文件,但是带来的问题是,多个config文件中,不能有同名的action、或actionForm的定义。
2、在web.xml中配置多个模块,每个模块使用单独得config文件。这是真正意义上的多模块,即使每个模块中有相同名 字的定义,也不要紧。
第一种配置的方法很简单:在web.xml中这样定义:
2、在web.xml中配置多个模块,每个模块使用单独得config文件。这是真正意义上的多模块,即使每个模块中有相同名 字的定义,也不要紧。
第一种配置的方法很简单:在web.xml中这样定义:
config
/WEB-INF/struts-config.xml,
/WEB-INF/struts-config-registration.xml
使用的时候,这和把所有配置内容写到一个config文件中没有区别。
第二种是这样:
1、为每个模块准备一个配置文件
2、配置web.xml文件,通知控制器
1、为每个模块准备一个配置文件
2、配置web.xml文件,通知控制器
下面是一个典型的多模块配置文件:
config
/WEB-INF/struts-config.xml
config/customer
/WEB-INF/struts-config-customer.xml
config/order
/WEB-INF/struts-config-order.xml
在这里配置了两个应用模块和一个默认模块。如果struts-config-order.xml中配置了如下action:
那就可以使用这样的URL访问:
其中,webapp是web应用名,order是模块名,logon是该模块的一个action。要注意的是,当设置一个模块后,struts会默认该模块的目录,如上,模块名是order,那么struts会认为该模块处在order目录下。即,该web应用的目录结构是这样:
webapp
|-WEB-INF
|-order
|-customer
|-WEB-INF
|-order
|-customer
如果你的web应用目录结构是类似下面这样:
webapp
|-WEB-INF
|-jsp
|-order
|-customer
|-WEB-INF
|-jsp
|-order
|-customer
那么,上面得logon这个action的定义要改一改:
forward="/../jsp/order/logon.jsp" />
这是因为,你声明的模块是config/order,那么在struts看来,你的目录下必定有一个与WEB-INF目录同级的order目录,因此,你要用"/../jsp/order"来引用你自己得order目录下的文件。