今天学习springmvc时候,使用@RequestMapping注解进行页面调用访问,但是出现了跳转页面时候404的问题,找到了解决方法。
问题描述:
原始代码如下
@RequestMapping(value="/book/{bid}",method = RequestMethod.PUT)
public String updatebook(@PathVariable("bid")Integer id){
System.out.println("更新"+id);
return "book.jsp";
}
@RequestMapping(value="/book",method = RequestMethod.POST)
public String getbook(){
System.out.println("新增");
return "book.jsp";
}
上面函数访问的时候出现
但是下面的函数是能正常访问的,主要是占位符的不同,多了占位符之后就无法正常跳转了。
原因分析:
经过查找资料,大概分析如下:
问题出现原因:
@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。
用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
解决办法:
在路径前加上…/ 即可
可能在跳转过程中有很多路径前多一个或两个你的类上的RequestMapping的值,我们需要根据跳转的层级关系来加路径。
如果出现了在跳转过程中jsp的css或js等失效,原因可能是静态资源的引入都是相对路径,改为绝对路径就可以保持每一次跳转,静态资源不会因为地址的变化而请求不到。
修改代码如下:
@RequestMapping(value="/book/{bid}",method = RequestMethod.PUT)
public String updatebook(@PathVariable("bid")Integer id){
System.out.println("更新"+id);
return "../book.jsp";
}
之后就能正常访问了