Вызов контроллера из шаблона плиток с использованием Spring 3 - PullRequest
2 голосов
/ 16 ноября 2010

Я только что настроил Apache Tiles 2 в своем приложении Spring MVC 3.

Я создал свой шаблон:

 <definition name="baseLayout" template="/WEB-INF/jsp/baseLayout.jsp">
      <put-attribute name="title"  value="Template"/>
      <put-attribute name="header" value="/WEB-INF/jsp/header.jsp"/>
      <put-attribute name="menu"   value="/WEB-INF/jsp/menu.jsp"/>
      <put-attribute name="body"   value="/WEB-INF/jsp/body.jsp"/>
      <put-attribute name="footer"   value="/WEB-INF/jsp/footer.jsp"/>
  </definition>

и страницу приветствия:

  <definition name="welcome" extends="baseLayout">
      <put-attribute name="title"  value="Welcome"/>
      <put-attribute name="body"   value="/WEB-INF/jsp/home.jsp"/>      
  </definition>

И свойства для плитки:

welcome.(class)=org.springframework.web.servlet.view.tiles2.TilesView
welcome.url=welcome

И мой контроллер:

@RequestMapping(value="/welcome", method=RequestMethod.GET)
public ModelAndView home() {
    logger.info("Welcome home yesssssss!");
    ModelAndView mav = new ModelAndView();
    logger.info("Loading Companies");
    mav.addObject("companys", companyService.loadCompanys());
    mav.setViewName("welcome");
    return mav;
}

Работает нормально.

Но как мне вызвать другой контроллер из шаблона?файл вроде скажем menu.jsp , который будет вызывать контроллер, подобный этому:

@RequestMapping(value="/menu", method=RequestMethod.GET)
public ModelAndView menu() {
    logger.info("get MEnu");
    ModelAndView mav = new ModelAndView();
    logger.info("Loading menu");
    mav.addObject("menu", menu.get());
    mav.setViewName("menu");
    return mav;
}

Есть идеи?

спасибо

1 Ответ

1 голос
/ 16 ноября 2010

Чтобы вызвать контроллер 'menu', вам нужно указать 'menu' в файле свойств вместе с соответствующим URL-адресом, который должен быть сопоставлен с контроллером (так же, как вы это сделали для приветствия).

Могу ли я предложить использовать .htm для представлений или .do для форм и т. Д.?Без этого легко запутаться, если вы пытаетесь показать представление, или вы пытаетесь отобразить запрос и т. Д.

...