Плитка и редирект в Spring MVC - PullRequest
4 голосов
/ 18 ноября 2010

Я использую Tiles 2 в своем приложении Spring 3 MVC, я определяю форму:

     <definition name="addcompany.htm" extends="baseLayout">
      <put-attribute name="title"  value="Add Company"/>
      <put-attribute name="body"   value="/WEB-INF/jsp/addcompany.jsp"/>      
  </definition>

и:

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

А вот мой контроллер:

@RequestMapping(value="/addcompany.htm", method=RequestMethod.GET)
public ModelAndView getForm() {
    logger.info("Getting form!");
    ModelAndView mav = new ModelAndView();
    logger.info("Loading form");
    Company cmp = new Company();
    mav.addObject("company",cmp);
    mav.setViewName("addcompany");
    return mav;
}

@RequestMapping(value="/addcompany.htm", method=RequestMethod.POST)
public String  postForm(@ModelAttribute("company") Company cmp) {
    logger.info("post form!");
    companyService.saveCompany(cmp);
    logger.info("post form");
    return "redirect:tiles:companylist"; // How do i redirect?
}

Используя Tiles2, REDIRECT не работает.

Есть идеи, как перенаправить после успешного POST, используя Tiles?

спасибо

РЕДАКТИРОВАТЬ: Решение состоит в том, чтобы добавитьв views.properties:

redirectcompanylist.(class)=org.springframework.web.servlet.view.RedirectView
redirectcompanylist.url=/companylist.htm

и вернуть redirectcompanylist в контроллер

1 Ответ

4 голосов
/ 18 ноября 2010

Вам придется использовать путь URL при перенаправлении. Например: return redirect:/companylist.htm, который затем переходит к соответствующему методу в контроллере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...