springMVC的action跳转时遇到404

背景

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后,如果路径不是拼写错误的话,那么真的可能是请求路径错了。
可以通过查看 浏览器的地址栏 来明确自己的转发地址是否正确

你可能感兴趣的:(bug,java,SpringMVC-bug)