分享
 
 
 

在struts1.1中使用应用模块(Application Modules)

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

在struts1.1中使用应用模块(Application Modules)

Struts 1.1的一个新特性是应用模块的概念。应用模块允许将单个Struts应用划分成几个模块,每个模块有自己的Struts配置文件,

JSP页面,Action等等。这个新特性是为了解决大中型的开发队伍抱怨最多的一个问题,即为了更好的支持并行开发允许多个配置

文件而不是单个配置文件。

在用struts进行大型项目开发中,使用这种新特性将是非常好的选择。

下面我以一个非常简单的例子来展示这一功能。

通常在单模块进行开发时,文件的最一般的目录结构如下:

test/

..../web-inf/

.........../classes

.........../lib

.........../*.tld

.........../struts-config.xml

........... /web.xml

........... /validator-rules.xml

........... /validation.xml

........... ...

..../js

..../css

..../main1.jsp (本例使用的一个简单的jsp页面)

..../*.jsp

... ..

如果我们增加一个单独的模块如:test1,则文件的最一般的目录结构如下:

test/

..../test1 ****

........./main11.jsp (本例使用的一个简单的jsp页面)

........./*.jsp ****

..../web-inf/

.........../classes

.........../lib

.........../*.tld

.........../struts-config.xml

........... /struts-test1-config.xml *****

........... /web.xml

........... /validator-rules.xml

........... /validation.xml

........... ...

.../js

... /css

.../main1.jsp (本例使用的一个简单的jsp页面)

.../*.jsp

... ..

[旁边带有“****”的为新增的一些文件或目录]

以下为变更的几个xml配置文件:

1.struts-config.xml

在原来的action-mapping 增加switchAction 如:

....

....

<action-mappings>

<!-- Edit user registration -->

<action path="/login"

type="com.ifreeway.rms.v12.action.LoginAction"

scope="request">

<forward name="error" path="/main1.jsp"/>

</action>

<action path="/login1"

type="com.ifreeway.rms.v12.action.LoginAction1"

scope="request">

<forward name="error" path="/main1.jsp"/>

</action>

<action path="/switchdo" type="org.apache.struts.actions.SwitchAction"/> ****

</action-mappings>

....

....

[旁边带有“****”的为新特性中增加的配置]

2.struts-test1-config.xml

添加输入这个模块的actionmapping 如下:

....

....

<action-mappings>

<!-- Edit user registration -->

<action path="/login3"

type="com.ifreeway.rms.v12.action.LoginAction2"

scope="request">

<forward name="error" path="/main11.jsp"/>

</action>

</action-mappings>

....

....

3.web.xml

....

....

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>/WEB-INF/struts-config.xml</param-value>

</init-param>

<init-param>

<param-name>config/test1</param-name> *****

<param-value>/WEB-INF/struts-test1-config.xml</param-value> *****

</init-param>

<init-param>

<param-name>debug</param-name>

<param-value>3</param-value>

</init-param>

<init-param>

<param-name>detail</param-name>

<param-value>3</param-value>

</init-param>

<load-on-startup>2</load-on-startup>

</servlet>

....

....

[旁边带有“****”的为新特性中增加的配置]

大家可以看到在struts-test1-config.xml中增加了下面代码:

<action path="/switchdo" type="org.apache.struts.actions.SwitchAction"/>

因为在struts1.1中模块之间的导航要使用到org.apache.struts.actions.SwitchAction,如果你查看struts1.1的源代码可以发现

org.apache.struts.actions.SwitchAction需要两个参数:prefix 和 page 下面对这个参数逐一说明:

这两个参数均要以“/”开头

prefix 简单一点就是新增模块的名字,本例为:test1

page 就是在新的strutsconfig配置文件中要使用的actionmapping的名字 就本例为:login3.do

注意:如果是要使用却省模块的调用的话 prefix=空字符串

好了下面给出模块间转换的方法

启动Tomcat

http://localhost:8080/test/switchdo.do?prefix=/test1&page=/login3.do

则调用struts-test1-config.xml下的/login3.do

http://localhost:8080/test/switchdo.do?prefix=&page=/login1.do

则调用struts-config.xml下的/login1.do

http://localhost:8080/test/switchdo.do?prefix=&page=/login.do

则调用struts-config.xml下的/login.do

总的来说模块之间的转换要用到org.apache.struts.actions.SwitchAction,而它需要传递两个参数(一般出错的地方极有可能出在参数

的错误上,请注意了)

[注:在struts1.1正式版中已经支持多了配置文件 2003-07-21]

这篇贴子最初是发贴在cjw(http://www.chinajavaworld.net)的struts专区

Jplateau 2003-05-05

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有