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