2011-11-29 125 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