Chinaunix首页 | 论坛 | 博客
  • 博客访问: 467362
  • 博文数量: 1496
  • 博客积分: 79800
  • 博客等级: 大将
  • 技术积分: 9940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 13:22
文章分类

全部博文(1496)

文章存档

2011年(1)

2008年(1495)

我的朋友

分类:

2008-09-09 13:31:55


  在使用struts多模块的,找到一些小技巧和经验,与大家分享一下。
  
  关于多module的配置就不说了,只需要用不同的config,struts-config.xml作为默认module, struts-config-module.xml作为/module的配置
  
  CSDN上有不少相关的说明。
  
  struts中的module,实际上就类似于平日里开发web程序中的子目录
  如
  /- root
  /music
  /module
  /...
  例如上面的/music作为模块名,那么struts-config-music中的所有path默认即/music/xxx.do
  
  一些教程中说要把jsp页面放入/web-inf中,这是个很好的方法,一开始我也这么做,可惜,struts的action标签不支持contextRelative,只有forward支持,所以,如果要使用/xxx.do直接redirect或者forward到某个页面是行不通的。因为他们的地址相对于/music/web-inf/xxx.jsp 这样就找不到了。
  
  我的建议是,root下面的目录要和module一致。
  例如
  
  /
  /moduleA
  /moduleB
  
  虽然性有些降低,但使用起来非常方便。
  
  一般的,要写一个link,可以通过来写
  
  
  
  他的好处是内置的支持module,不需要自己写.do,这就可以使得你的.do,任意的修改为别的而不影响程序运行。例如,.jspa,假装一下webwork
  
  默认的是相对module的。例如进入了/module/actionA指向的页面,在这个页面中,所有的link都被转换为相对于/module 如,实际上是/module/actionB
  
  那么,如果要执行默认module的action怎么办?嘿嘿,其实很简单。我开始的时候绞尽脑汁,用了switchAction来解决/module/switch?prefix=&page=/xxx.do&....
  
  实际上,一个传统的办法可以有效解决。即,可以回到上一层的module中。我开始可真没想到。
  
  link标签有page,href,action三种不同的链接方法。其中,action默认的指向某个path,page指向一个jsp页面,也是相对于module的href可以写外部url.
【责编:admin】

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

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