职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1365|回复: 0

Java进阶:Struts多模块的技巧

[复制链接]
joe 发表于 2007-1-23 19:12 | 显示全部楼层 |阅读模式
在使用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,可以通过<html:link>来写

<html:link action=\"/module/action\" >

他的好处是内置的支持module,不需要自己写.do,这就可以使得你的.do

任意的修改为别的而不影响程序运行。例如,.jspa,假装一下webwork

默认的<html:link>是相对module的。例如进入了/module/actionA指向的页面

在这个页面中,所有的link都被转换为相对于/module 如<html:link action=\"/actionB\" >,实际上是/module/actionB

那么,如果要执行默认module的action怎么办?嘿嘿,其实很简单。我开始的时候绞尽脑汁,用了switchAction来解决/module/switch?prefix=&page=/xxx.do&.... 多麻烦

实际上,一个传统的办法可以有效解决。即<html:link action=\"../action\" >

可以回到上一层的module中。我开始可真没想到。

link标签有page,href,action三种不同的链接方法。

其中,action默认的指向某个path,page指向一个jsp页面,也是相对于module的href可以写外部url.
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-14 01:32 , Processed in 0.129905 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表