我很困惑使用spring web MVC来“重定向”。
我想重定向到某个网址,但brwser中的地址栏未更新。
首先,我将表单发布到控制器,在此控制器中,我使用“redirect:”前缀到新控制器(它可以工作),但地址栏仍然引用了以前的URL。
以下是我的控制器接收邮寄请求的代码:
@RequestMapping(method=RequestMethod.POST)
public ModelAndView processSubmit(LoginFormBean formBean, BindingResult result,
Model model) {
System.out.println(formBean.getUsername());
System.out.println(formBean.getPassword());
return new ModelAndView("redirect:/index");
}
让控制器重定向:
@Controller
@RequestMapping("/index")
public class IndexController {
@RequestMapping(method=RequestMethod.GET)
public String show() {
return "index";
}
}
在发布表单之前,表单URL为“http:// localhost:7001 / mobi” 在发布和重定向之后,URL不是“http:// localhost:7001 / mobi / index”,但仍然是“http:// localhost:7001 / mobi”
我的代码中是否有任何需要纠正的错误? 社区能否协助我正确实施?
答案 0 :(得分:0)
我可以根据你的代码推测出唯一可见的答案是,你怀疑你有一个重定向到索引的模式视图。你可以在Spring 3中放弃modelandview语法,直接返回你想要的页面。这是我自己的代码中的一个示例,我还收到一个已发布的表单并重定向到另一个控制器:
@RequestMapping(value = REQUEST_MAP, method = RequestMethod.POST)
public String processForm(HttpServletRequest req, HttpServletResponse res, @ModelAttribute("myForm") myForm form, BindingResult result)
throws Exception {
//super cool form handling logic here!
return "redirect:/anotherControllerMappedURI";
}
我本可以直接返回一个字符串来返回一个视图页面。比如,返回“index”以将用户发送到index.jsp页面。然后,如果需要,您可以使用元标记执行html重定向。