Chinaunix首页 | 论坛 | 博客
  • 博客访问: 685400
  • 博文数量: 845
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:22
文章分类

全部博文(845)

文章存档

2011年(1)

2008年(844)

我的朋友

分类:

2008-10-15 16:36:08

  在使用Struts框架时,每个请求都由Action去处理,并且还要在struts-config.xml中加以设定,这样以来做小项目还行,在大型网站的开发中,有很多小组负责不同的模块,如果每一个小组要对一个struts-config.xml进行设定,将会导致struts-config.xml的版本控制问题。

  您可以为每个小组分配不同的struts-config.xml设定文件,方法是在ActionServlet参数的config参数后面加上后缀,如果是config/admin,那么相应的配置文件的名字就是:struts-config-admin,他们的后缀名字必须对应,这样才能映射上。

  例如我们可以把后台处理分配一个小组,设定具体代码如下所示:web.xml

  action

  org.apache.struts.action.ActionServlet

  config

  /WEB-INF/conf/struts-config.xml

  config/admin

  /WEB-INF/conf/struts-confg-admin.xml

  debug

  3

  detail

  3

  0

  config/admin:指定了admin模块的所使用的配置文件是struts-config-admin.xml,现在负责后台模块的开发人员只要管理自己的开发文档设定就行了,就像前面所说的一样,当ActionServlet收到请求时,它是根据模块你所指定的后缀,进行处理是哪个模块的请求。

  例如:

  

  这个URL,表示请求由strutsmodel工程的admin环境的admin.do来处理这个请求。这样以来前台和后台就分明了,各自开发各自的,各自管理自己的配置文件,达到松耦合的目的。

  当ActionServlet请求接收请求,它判断URL中相对与context的前缀,例如上例中的admin,于是就知道应该使用admin模块。下面是struts-config-admin.xml:

  ……

  path="/admin"

  type="org.zhoudq.webapp.action.AdminAction" >

  ……

  这样以来所有的path设定将自动被加上login前缀,例如必须使用以下的路径才可以正确的请求到AdminAction:

  

  在模块中的Action在查找forward时,都是以所在模块,查找对应的struts-confg-XXX.xml的,例如上面的AdminAction在查找forward时,则会查找struts-config-admin.xml中的forward元素,也就是说,模块中的forward对象的查找都是相对于模块的路径的,而不是相对与环境上下文。

  那么我们模块分配工作几已经搞定了,各个小组可以分别开工了,但是问题来了,那么如何从当前的模块换到另一个模块呢?

  当您的项目分作很多个模块时,在使用者点某个链接时,您有两个方法可以在模块之间切换。

[1]  

【责编:Chuan】

--------------------next---------------------

阅读(256) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~