背景
SpringMVC 跳转的两种方式:
forward:另一个action的相对路径,请求转发到另一个action上
redirect:另一个action的相对路径,响应重定向到另一个action上
采用的是相对路径进行跳转
存在的问题
由于自己对同一个controller类里的响应方法统一了路径/dept。所以在这个action里进行跳转时,默认是从/dept下进行跳转。
@Controller
@RequestMapping("/dept")
public class DeptController {
@RequestMapping("/deptInsert.action")
public String deptInsert(Integer deptNo, String deptName, String loc) {
Dept dept = new Dept(deptNo, deptName, loc);
System.out.println(dept.toString());
return "forward:skip.action";
}
}
而自己要跳转的skip.action是在根目录下。如果按上面这么写,跳转的路径是 /dept/skip.action
而不是 /skip.action
,导致404错误。
正确的解决方法:
return "forward:/skip.action";
如果是在根目录下,在要跳转的action前加上 /
即可。
注意:这里采用的是相对路径进行跳转。
解决方法
出现404后,如果路径不是拼写错误的话,那么真的可能是请求路径错了。
可以通过查看 浏览器的地址栏
来明确自己的转发地址是否正确