2010-11-17 89 views
4

我在我的春節,3 MVC應用程序 使用瓷磚2我定義了一個表格:瓷磚和Spring 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不起作用。

任何想法如何使用Tiles成功POST後重定向?

感謝

編輯: 解決方案是增加這在views.properties:

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

並在控制器返回redirectcompanylist

回答

4

你將不得不使用的URL重定向時的路徑。像這樣:return redirect:/companylist.htm然後轉到控制器中的相應方法。

+0

謝謝,但我得到一個500錯誤:無法解析視圖的名稱'重定向:/companylist.htm'。 companylist有自己的Tile也像addcompany – guigui42 2010-11-17 22:28:19

+0

你有一個方法在你的控制器中用'@RequestMapping(value =「/ companylist.htm」,method = RequestMethod.GET)''註解嗎? – hleinone 2010-11-17 22:45:09

+0

是的,我擁有它。當我在我的瀏覽器中找到/companylist.htm網址時,它可以正常工作。但是當我填寫表單並將公司添加到數據庫後,重定向給了我這個錯誤:javax.servlet.ServletException:在servlet中無法解析名爲'redirect:/companylist.htm'的視圖 – guigui42 2010-11-17 22:51:54