2013-01-02 17 views
0

我在WebContent文件夾中有所有的jsp頁面(例如:index.jsp),並且我的應用程序運行正常。 現在,我在WebContent內部創建了一個文件夾「頁面」,在那裏我轉移了所有的jsp頁面。在struts.xml中沒有「resultpath」常量的影響

而且我加了<struts>標記中的以下行:

<constant name="struts.convention.result.path" value="/pages" /> 

但儘管如此,它不是「頁」文件夾中尋找JSP。 我越來越:

HTTP狀態404 - /MyApplicationName/index.jsp

我在哪裏做了一個錯誤?

編輯:我的應用程序的當前結構如下:

歡迎頁面是一個動作,而不是一個jsp頁面。此操作的結果頁面是index.jsp。此操作將填充index.jsp中的下拉菜單和其他一些字段。現在,我想將index.jsp與其他jsp頁面一起保存在「WebContent/pages」文件夾中。我的應用程序中有超過30個jsp頁面,我不想在結果標記中提及每個jsp的完整路徑。這就是爲什麼我想利用struts2常量「struts.convention.result.path」

我的問題是,爲什麼我上面提到的代碼不工作?

+0

安置自己的配置細節。 –

+0

如果你正在使用'Struts2-Convention-Plugin',試試'index.action' – Jaiwo99

+0

把頁面直接放在/ WEB-INF/content /(否「struts.convention.result.path」需要或至少是「/ WEB- INF/pages /「強制參與struts2,但是你需要結果路徑集)。如果你真的想要這個擴展,你還需要設置struts2 action extension來包含jsp。我沒有試過這個......我想如果你想隱藏用戶的詳細信息,那麼將動作擴展爲html是最好的。 Jsp不是一個好的選擇,因爲你可能需要使用不同的視圖技術,這會有點令人困惑。 – Quaternion

回答

1

訪問index.jsp直接繞過所有的S2請求處理。

沒有涉及S2或S2 Convention插件,您只是訪問JSP頁面。

+0

我編輯了我的問題。請幫忙。 –

0

如果index.jsp是您的應用程序的第一頁,那麼您需要將其路徑更改爲web.xml的<welcome-file>標籤中的/pages/index.jsp。並休息我同意@Dave牛頓:)

+0

我編輯了我的問題。 –

0

可能你的錯誤是在struts.xml中。

當你一個new-Folderweb-content使創建與

xml file 相同的名稱(文件夾名稱),並將其納入struts.xml文件時,它會正常工作。

對於例如:假設你在網絡內容創建example folder,現在src文件夾下並在struts.xml文件中創建的example.xml文件

的example.xml包括

的example.xml:

<struts> 

    <package name="example" namespace="/example" extends="default"> 
    <action name="your action name" class="your class" method="your method"> 
    </action> 
</package> 
</struts> 

支柱。XML:

<struts> 

<constant name="struts.enable.DynamicMethodInvocation" value="false" /> 
<constant name="struts.devMode" value="false" /> 

<action name="" class="" method=""> 
</action> 
</package> 

<include file="example.xml"/> 

+0

謝謝。順便說一下,它不需要創建一個名爲example的文件夾。我知道如何在struts.xml中包含xml文件。 問題是,如何在struts2中使用常量result.path來使服務器在特定位置查找結果頁面,這比提到結果標記中每個結果頁面的完整路徑要好。 –