2011-11-29 2 views
3

Java Spring MVC에 익숙하지 않습니다. 공식 문서는 매우 열악하며 Spring에서 페이지 렌더링에 관해 많은 질문을합니다.스프링 MVC. 렌더링 레이아웃

메뉴가있는 페이지와 상단 블록이 있습니다. 이 메뉴는 동적이어야하며 모든 페이지에 표시되어야합니다. PHP 프레임 워크에서 이것은 매우 일반적이며 매우 쉬운 작업입니다. 그러나 봄은 내 뇌를 폭발시킨다. 어떻게하면이 평화로운 논리에서이 메뉴의 렌더링을 분리하고 봄을 항상 표현하도록 할 수 있을까? 예를 들어 JSP에서. 나는 콩이나 다른 것들을 사용합니까?

답변 해 주셔서 감사합니다.

+1

스프링 MVC는 레이아웃 엔진이 아니기 때문에 이것은 언급되지 않았다. 단지 다른 프레임 워크에 위임한다. – skaffman

답변

3

공식 문서는

아니오 그렇지 않은 매우 좋지 않습니다. 그것의 one place 나는 항상 다시 참조하십시오.

나는 jsp include을 사용하고 컨트롤러에서 jsp로 자바 빈을 전달합니다. 포함 된 jsp는 처음 포함될 때 캐시됩니다. 다른 곳에서는 jquery와 ajax을 사용하는 컨트롤러에 연결하여 페이지를 동적으로 업데이트합니다.

나는 official tutorialskrams을 좋은 출발점으로 제안합니다.

1

Spring의 범위를 벗어났기 때문에 Spring 문서에서 이에 대한 많은 정보를 찾을 수 없습니다.

JSP 포함은 PHP 포함과 마찬가지로 사용할 수 있습니다. 그러나 이것은 페이지 레이아웃을 반복하도록 강요되고 각 응용 프로그램의 모든 페이지에 포함 :

<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 참조)처럼 템플릿 엔진을 사용합니다.

+0

menu.jsp에서 사용할 수있는 데이터가 필요한 경우 어디서 구해야합니까? 콩쿨에서 & 콩에서? – zim32

+0

모델에서. Spring은 Model의 개념을 가지고 있으며, 이것은 영광스러운 Map입니다. 이 모델에는 원하는 것을 저장하고, JSP EL과 JSTL은 Java Bean에 액세스하도록 설계되었으므로 모델에는 Bean의 인스턴스가 있어야합니다. –

0

가장 쉬운 방법은 < jsp를 사용하는 것입니다. include page = "/ menu.jsp"/ > 여기서 "/menu.jsp"는 메뉴 jsp의 경로입니다.

tiles과 같은 다른 솔루션이 있지만 <jsp : >을 포함해야합니다.

+0

그러나 menu.jsp에서 사용할 수있는 데이터가 필요한 경우 어디서 구해야합니까? 콩쿨에서 & 콩에서? – zim32

+0

@ zim32 메뉴가 같은 jsp에있는 경우와 같은 방식으로 가져올 수 있습니다. – soulcheck

+0

@ zim32 컨트롤러 나 다른 사람이 사용하는 ModelAndView에 데이터를 전달해야 할 필요가 있음을 의미합니다. – soulcheck