将带有pathvariable的字符串返回给另一个控制器

时间:2014-02-19 03:52:29

标签: java spring spring-mvc

我的主要问题是返回一个字符串,其路径变量值从一个控制器返回到另一个控制器。

见这里:

@RequestMapping(value = "/profile/{location}")
public ModelAndView profile(@PathVariable("location") String location) throws Exception {
    return new ModelAndView("profile", "*", *);
}

@RequestMapping(value = "/records", method = "RequestMethod.POST") 
public String inRecords(@Valid User user, BindingResult result) {
    if(result.hasErrors()) {
        return "profile/system";  
    }
    else {
        .....
        return "somewhere";
    }
}

我的问题是返回“个人资料/系统”转到 WEB-INF / views / profile / system.jsp 。我是否在使用 @PathVariable 或使用return语句本身做错了什么?

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

为什么你不尝试这样的事情。

@RequestMapping(value = "/records", method = "RequestMethod.POST") 
public void inRecords(@Valid User user, HttpServletResponse response) {
    if(result.hasErrors()) {
        response.sendRedirect("/YourApp/profile/system")
    }

我认为ModelAndView正在获取返回的String并尝试运行试图获取jso的ViewResolver,避免调用或将请求直接重定向到所需的端点。

或者如果你想保持modelAndView使用这个

return new ModelAndView("redirect:/profile/system");