2011-11-29 166 views
3

我是Java Spring MVC的新手。官方文檔非常差,我在Spring中有很多關於渲染頁面的問題。Spring MVC。渲染布局

我有頁面和頂部的菜單塊。該菜單必須是動態的,並且必須顯示在所有頁面上。在PHP框架中,這是非常普遍且非常簡單的任務。但是,春天讓我的大腦爆炸了。我怎樣才能在邏輯的某種平和中將這個菜單的呈現分開,並且告訴春天它始終呈現呢?例如在JSP中。我用豆子還是其他東西?

感謝您的回答!

+1

這在Spring中沒有提到,因爲Spring MVC不是一個佈局引擎,它只是委託給其他的框架。 – skaffman

回答

3

正式文件是非常差

不,它不是。它的one place我總是提到。

我使用jsp include並且是從控制器向java傳遞一個java bean。包含的jsp將在第一次被包含時被緩存。在其他地方,我使用jquery和ajax連接到一個控制器,它動態更新頁面。

我建議official tutorialskrams作爲很好的起點。

1

在Spring文檔中,您不會找到關於此的更多信息,因爲它超出了Spring的範圍。

您可以像使用PHP包含一樣使用JSP。然而,這將迫使你不得不重複的頁面佈局和包括在每一個和應用程序的每一頁:

<jsp:include page="/menu.jspf" /> 

或者使用一個模板引擎,就像SiteMesh的或Apache瓷磚(見http://static.springsource.org/spring/docs/3.1.0.RC1/spring-framework-reference/html/view.html#view-tiles在春季集成Tile)。

+0

但是如果我需要一些數據在menu.jsp中可用,我應該在哪裏得到它?從Consoller&From bean? – zim32

+0

來自模型。春天有一個模型的概念,這是一個榮耀的地圖。您可以在該模型中存儲您想要的任何內容,並且由於JSP EL和JSTL旨在訪問Java Bean,因此該模型應該包含Bean的實例。 –

0

最簡單的方法是使用< jsp:include page =「/ menu.jsp」/ >其中「/menu.jsp」是菜單jsp的路徑。

還有其他解決方案,如使用tiles,但< jsp:include >應該這樣做。

+0

但是如果我需要一些數據在menu.jsp中可用,我應該在哪裏得到它?從Consoller&From bean? – zim32

+0

@ zim32如果菜單位於同一個jsp上,您可以像獲取它一樣獲取它。 – soulcheck

+0

@ zim32這意味着您可能必須將它放在您的控制器返回的ModelAndView中或用於將數據傳遞到視圖的任何其他內容。 – soulcheck