Spring MVC 中的平铺和重定向

gui*_*i42 5 redirect spring tiles

我在 Spring 3 MVC 应用程序中使用 Tiles 2 我定义了一个表单:

     <definition name="addcompany.htm" extends="baseLayout">
      <put-attribute name="title"  value="Add Company"/>
      <put-attribute name="body"   value="/WEB-INF/jsp/addcompany.jsp"/>      
  </definition>
Run Code Online (Sandbox Code Playgroud)

和 :

addcompany.(class)=org.springframework.web.servlet.view.tiles2.TilesView
addcompany.url=addcompany.htm
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

@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?
}
Run Code Online (Sandbox Code Playgroud)

使用 Tiles2,重定向不起作用。

知道如何在使用 Tiles 成功 POST 后重定向吗?

谢谢

编辑:解决方案是在 views.properties 中添加:

redirectcompanylist.(class)=org.springframework.web.servlet.view.RedirectView
redirectcompanylist.url=/companylist.htm
Run Code Online (Sandbox Code Playgroud)

并在控制器中返回redirectcompanylist

hle*_*one 5

重定向时必须使用 URL 路径。像这样:return redirect:/companylist.htm然后转到控制器中的相应方法。