我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: Struts多模块的应用技巧 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

klo



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
家族: YD一族
发贴: 473
威望: 0
浮云: 1105
在线等级:
注册时间: 2007-01-10
最后登陆: 2008-06-30

5come5帮你背单词 [ poultry /'pəultri/ n. 家禽 ]


Struts多模块的应用技巧


在使用struts多模块的,找到一些小技巧和经验,与大家分享一下。关于多module的配置就不说了,只需要用不同的config,truts-config.xml作为默认module, struts-config-module.xml作为/module的配置

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,可以通过来写 < html:link action="/module/action" >

他的好处是内置的支持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。
顶端 Posted: 2008-04-26 13:09 | [楼 主]
我来我网·5come5 Forum » 程序员之家

Total 0.006042(s) query 4, Time now is:11-24 09:34, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号