2015-11-19 2 views
3

На моем сайте все страницы jsp включают bodyHeader.jsp. Я должен запросить db для заполнения некоторых полей на bodyHeader.jsp. Я сопоставил заголовок jsp в моем контроллере, я НЕ хочу, чтобы этот метод запускался на каждой странице. Ну, этот метод не назовешь, чего мне не хватает?Контроллер пружины @RequestMapping для включения JSP

В очень JSP:

<jsp:include page="/fragments/bodyHeader.jsp"/> 

В контроллере:

@RequestMapping(value = "/fragments/bodyHeader", method = RequestMethod.GET) 
public void getCategoryList(Model aaModel) { 

    aaModel.addAttribute("categories", this.caService.findCategoryByLevel(0)); 
} 
+0

Пожалуйста, добавьте свое определение viewresolver – reos

ответ

2

Для макета здания страницы я рекомендую использовать Apache Tiles. Страницы будут собраны из фрагментов во время выполнения.

Чтобы использовать Apache Tiles можно добавить TilesViewResolver в Спринг компонента:

... 
<bean class="org.springframework.web.servlet.view.tiles2.TilesViewResolver"> 
... 

, а также TilesConfigurer:

<bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property> 
     <list> 
      <value>/WEB-INF/views/**/views.xml</value> 
     </list> 
    </property> 
</bean> 

плитки шаблон views.xml:

... 
<tiles-definition> 
    <definition name="template" template="/WEB_INF/views/common_template.jsp"> 
     <put-attribute name="header" value="/WEB_INF/views/tiles/header.jsp"/> 
     <put-attribute name="side" value="/WEB_INF/views/tiles/side.jsp"/> 
     ... 
    </definition> 
    <definition name="main" extends="template"> 
     <put-attribute name="content" value="/WEB-INF/views/main.jsp"/> 
    </definition> 
</tiles-definition> 

Смотрите также:

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