首先兩個包,請原諒我的不理解......我還在學習:)Struts2的 - 在struts.xml中指向動態Web根
我有我的支柱2包。 xml擴展了一個基礎包,我希望能夠通過在瀏覽器中輸入類似於http://site.com/application/1/ThisAction.action和/application/2/ThisAction.action(示例)的內容來訪問它們。
我在我的webapp文件夾中創建了兩個名爲'1'和'2'的目錄,我可以使用上面的URL導航到兩個包。我想要做的是將我的jsps放入jsp目錄中,而不是webapps。所以不是我的兩個文件夾駐留在/ webapp中,而應該駐留在/ webapp/jsp /中。
我試着將兩個軟件包的命名空間更改爲/ 1/jsp /而不是簡單的'/ 1',但我什麼也沒有得到。它只是告訴我沒有任何操作映射到該操作名稱。
有沒有人有任何見解我如何能做到這一點?谷歌沒有給我很多幫助,但可能只是我沒有尋找正確的東西。
這裏就是我指的是一個快速示例:
<struts>
<!-- Base-->
<package name="base" extends="struts-default" abstract = "true" namespace="/base">
<global-results>
<result name="cancel" type="redirectAction">CancelAction</result>
<result name="close">closewindow.jsp</result>
<result name="error">/jsp/wizard/GeneralError.jsp</result>
</global-results>
</package>
<package name="1" extends="base" namespace="/1">
對不起,我一定沒有正確解釋我自己。我們希望有兩個獨立的這些jsps副本。換句話說,我們希望擁有/jsp/1/yourpage.jsp以及/jsp/2/yourpage.jsp。我認爲你所描述的包含一個用於這兩個包的jsp,是否正確? – jacosta 2010-09-08 18:16:00
不,我只是說您需要按照我所建議的方式設置包和操作,以便按照您想要的方式構建URL。因此,如果它們是兩個單獨的JSP頁面,請繼續爲它們創建文件夾,只需讓不同操作的結果指向相應文件夾中的相應JSP頁面即可。 – 2010-09-09 01:00:24
您提到的內容肯定會起作用,但如果我們有相當數量的操作並且我們不想在每個軟件包中執行相同操作,該怎麼辦? 查看struts2文檔後,我可以通過在設置struts.enable.SlashesInActionNames = true之後在操作中使用通配符來實現這一點,但根據操作本身的調用方式,我的結果似乎有所不同(具體方法'結果')。 我想我可能能夠弄清楚這一點多一點調整.. 感謝您的幫助!這聽起來像我在正確的軌道上? – jacosta 2010-09-09 06:32:50