Spring MVC中的瓷砖和重定向

5

我正在我的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>

并且:

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,重定向无法正常工作。

有没有想法如何在使用Tiles后在成功的POST请求之后进行重定向?

谢谢。

编辑: 解决方法是在views.properties中添加以下内容:

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

在控制器中返回redirectcompanylist

1个回答

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

谢谢,但我遇到了500错误:无法解析名称为“redirect:/companylist.htm”的视图。 companylist也有自己的Tile,例如addcompany。 - guigui42
你的控制器中是否有一个带有@RequestMapping(value="/companylist.htm", method=RequestMethod.GET)注解的方法? - hleinone
是的,我有它。当我在浏览器中访问/companylist.htm网址时它可以运行。但是,当我填写表格并且公司被添加到数据库后,重定向会给我这个错误:javax.servlet.ServletException: 在servlet中无法解析名称为“redirect:/companylist.htm”的视图。 - guigui42
这是我的视图解析器:<beans:bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver" p:basename="views" />。你有任何如何使用它的例子吗?谢谢。 - guigui42
redirectcompanylist.(class)=org.springframework.web.servlet.view.RedirectView redirectcompanylist.url=/companylist.htm - guigui42
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接