一、Controller无法请求到另一个Controller
1、首先确认请求方式是否正确
return "forward:aaaa/bbbb";
return "redirect:aaaa/bbbb";
return new ModelAndView("forward:bbbb");
return new ModelAndView("redirect:bbbb");
2、如果请求方式正确那么就检查目标Controller是否限制了只能以某种方式请求,比如get、post
下面是我遇到问题原代码:doAddUser()--》getUserList()
@Controller
@RequestMapping(path = "/user")
public class UserController {
@RequestMapping(path = "/userlist", method = RequestMethod.GET)
public ModelAndView getUserList(){
ModelAndView mav=new ModelAndView();
List<UsersBean> usersList=usersServiceImpl.getAllUsers();
mav.addObject("userList",usersList);
mav.setViewName("/user/userlist");
return mav;
}
@RequestMapping(path="/doAdduser", method = RequestMethod.POST)
public ModelAndView doAddUser(UsersBean usersBean, @RequestParam("upwd2")String pwd2 ){
//这里省略判断和添加数据的方法...
return new ModelAndView("forward:/user/userlist");
}
}
我是进入了doAddUser方法完成工作后,需要以请求的方式转发到getUserList进入继续执行
我的请求的写法完全正确,但是就是无法进入getUserList方法。
下面是我的解决方案:
将getUserList方法的请求限制method = RequestMethod.GET去掉就能进入此方法了,虽然我现在也不知道这种请求方式属于哪一种,但是更改后结果是OK的。
不知道哪位懂的大神看到后可以解释一下原理
Spring MVC Controller间请求转发问题
本文探讨了在Spring MVC框架中,一个Controller如何正确请求另一个Controller的问题。具体分析了请求方式(forward与redirect)及请求限制(GET与POST)对Controller间通信的影响,并提供了解决方案。
168万+

被折叠的 条评论
为什么被折叠?



