關(guān)于多module的配置就不說(shuō)了,只需要用不同的config,
struts-config.xml作為默認module, struts-config-module.xml作為/module的配置
CSDN上有不少相關(guān)的說(shuō)明。
struts中的module,實(shí)際上就類(lèi)似于平日里開(kāi)發(fā)web程序中的子目錄
如
/- root
/music
/module
/...
例如上面的/music作為模塊名
那么struts-config-music中的所有path默認即/music/xxx.do
一些教程中說(shuō)要把jsp頁(yè)面放入/web-inf中,這是個(gè)很好的方法,
一開(kāi)始我也這么做,可惜,struts的action標簽不支持contextRelative,只有forward支持
所以,如果要使用/xxx.do直接redirect或者forward到某個(gè)頁(yè)面是行不通的。
因為他們的地址相對于/music/web-inf/xxx.jsp 這樣就找不到了。
我的建議是,root下面的目錄要和module一致。
例如
/
/moduleA
/moduleB
雖然安全性有些降低,但使用起來(lái)非常方便。
一般的,要寫(xiě)一個(gè)link,可以通過(guò)<html:link>來(lái)寫(xiě)
<html:link action="/module/action" >
他的好處是內置的支持module,不需要自己寫(xiě).do,這就可以使得你的.do
任意的修改為別的而不影響程序運行。例如,.jspa,假裝一下webwork
默認的<html:link>是相對module的。例如進(jìn)入了/module/actionA指向的頁(yè)面
在這個(gè)頁(yè)面中,所有的link都被轉換為相對于/module 如<html:link action="/actionB" >,實(shí)際上是/module/actionB
那么,如果要執行默認module的action怎么辦?嘿嘿,其實(shí)很簡(jiǎn)單。我開(kāi)始的時(shí)候絞盡腦汁,用了switchAction來(lái)解決/module/switch?prefix=&page=/xxx.do&.... 多麻煩
實(shí)際上,一個(gè)傳統的辦法可以有效解決。即<html:link action="../action" >
可以回到上一層的module中。我開(kāi)始可真沒(méi)想到。
link標簽有page,href,action三種不同的鏈接方法。
其中,action默認的指向某個(gè)path,page指向一個(gè)jsp頁(yè)面,也是相對于module的href可以寫(xiě)外部url.
聯(lián)系客服