2011-04-16 33 views
5

我有一個關於春天roo的問題。添加自定義頁面在春天roo

如何將自定義頁面添加到您的Web應用程序?如果我使用標準的Servlet,它看起來非常簡單和容易,但在Spring roo中我完全搞不清楚。 我想要的只是鏈接到我的自定義頁面的主頁面(包括菜單等)的鏈接。

我試圖添加一個新的Servlet到應用程序,設置其路徑映射到/ custompage。但是當我訪問http://localhost:8080/myapp/custompage時,它顯示資源不可用。

我也不能在主頁面添加鏈接,我試圖直接編輯menu.jspx並失敗。

任何人都可以點亮我嗎?任何幫助將不勝感激。

+0

你編輯'menu.jspx'時遇到過什麼樣的失敗? – Constantiner 2011-04-16 14:52:34

+0

好吧,菜單列表中沒有任何更改。我試圖在menu.jspx中複製粘貼一個列表(因此,使列表加倍)以及添加我自己的東西,比如簡單的'HELLO'。但它不會改變一件事情。甚至不顯示'你好' – Tetrax 2011-04-16 15:04:41

+0

你重新編譯你的代碼並重新部署它嗎? – 2011-04-16 15:23:06

回答

6

首先編輯您的{project_root}/src/main/webapp/WEB-INF/spring/webmvc-config.xml併爲您的新頁面添加新的mvc:view-controller定義。喜歡的東西:

<mvc:view-controller path="/custompage" /> 

然後打開{project_root}/src/main/webapp/WEB-INF/views/views.xml並添加以下定義:

<definition extends="public" name="custompage"> 
    <put-attribute name="body" value="/WEB-INF/views/custompage.jspx"/> 
    </definition> 

,並添加您custompage.jspx{project_root}/src/main/webapp/WEB-INF/views/文件夾。

然後編輯{project_root}/src/main/webapp/WEB-INF/views/menu.jspx和新的menu:itemurl="/custompage"

我認爲它應該工作。

+0

非常感謝。它工作得很好。 – Tetrax 2011-04-16 15:44:33

+1

如果要計算某些內容並將其傳遞到頁面,您可能希望生成控制器。你也可以自己定義不依賴roo主題的瓷磚。 – geoaxis 2011-04-18 00:07:25

6

最簡單的方法就是讓Roo爲你做。 使用controller class --class ~.web.CustomPageController --preferredMapping /custompage Roo將爲您創造一切。

確保你只有你需要的結果控制器,因爲它不會工作,如果你有多個映射每個請求(我認爲在1.1.4的默認值是有一個模糊的映射爲簡單'get')

+1

我這樣做了,並將控制器縮減爲僅返回「自定義頁面/索引」的一個「索引」方法,並驗證了這些視圖片段已創建。即使如此,當我瀏覽到/ myapp/custompage時,我得到Roo「資源未找到」頁面。 – 2011-10-07 18:20:11

2

我也做過同樣的事情。我遇到了同樣的問題。然後我注意到webmvc-config.xml沒有輸入<mvc:view-controller path="/custompage/index"/>。我把這個入口,現在它正在工作。確保上述代碼的存在。