2011-11-29 6 views
3

Я новичок в Java Spring MVC. Официальная документация очень плохая, и у меня много вопросов о рендеринге страниц весной.Весна MVC. Рендеринг макета

У меня есть страница и верхний блок с меню. Это меню должно быть динамическим и должно отображаться на всех страницах. В PHP-инфраструктурах это очень распространенная и очень простая задача. Но весна заставляет мой мозг взорваться. Как я могу отделить рендеринг этого меню в какой-то спокойной логике и рассказать весне о том, чтобы сделать это все время? Например, в JSP. Шоуд я использую бобы или другие вещи?

Спасибо за ваши ответы!

+1

Это не упоминается весной, потому что Spring MVC не является механизмом компоновки, он просто передает другие фреймворки. – skaffman

ответ

3

Официальная документация очень плохое

Нет, это не так. Его one place Я всегда обращаюсь к.

Я использую jsp include и да передаю java bean в jsp с контроллера. Включенный jsp будет кэшироваться при первом включении. В других местах я подключаюсь к контроллеру с использованием jquery и ajax, который динамически обновляет страницу.

Я предлагаю official tutorials и krams в качестве отправной точки.

1

Вы не найдете много информации об этом в документации Spring, потому что это выходит за рамки весны.

Вы можете использовать JSP, как и PHP. Это однако заставит вас повторить макет страницы и включать в каждом и каждой странице приложения:

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

Или использовать шаблонный движок, как SiteMesh или Apache Tiles (см http://static.springsource.org/spring/docs/3.1.0.RC1/spring-framework-reference/html/view.html#view-tiles интеграции плитки весной).

+0

Но если мне нужно, чтобы некоторые данные были доступны в menu.jsp, где я должен его получить? От consoller & From bean? – zim32

+0

От модели. Весна имеет понятие Модели, которое является прославленной Картой. Вы сохраняете все, что хотите в этой модели, и поскольку JSP EL и JSTL предназначены для доступа к Java-компонентам, модель должна содержать экземпляры 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

Смежные вопросы