点击页面链接跳转调用JSP返回404错误,已配置Spring Controller仍无法访问
跳转链接404错误排查点
- 检查Controller注解配置
确认Controller类是否添加了@Controller注解,而非@RestController:@RestController会直接把返回值作为响应体输出,不会触发视图解析器渲染jsp页面。如果类上额外配置了@RequestMapping路径,需要确认类路径和方法上的/35yearreunion拼接后和前端请求路径完全一致。 - 检查DispatcherServlet映射规则
查看web.xml或Spring配置中DispatcherServlet的拦截规则,如果配置的是*.do、*.action这类带后缀的拦截规则,直接请求/35yearreunion不会被DispatcherServlet捕获,自然无法匹配到对应Controller方法。 - 检查视图解析器配置
确认视图解析器的前缀、后缀配置正确:比如前缀是否为/WEB-INF/jsp/这类实际存放jsp文件的目录,reunion2021.jsp是否存放在前缀对应的目录下,后缀是否配置为.jsp,配置错误会导致视图解析器找不到对应页面返回404。 - 检查请求路径匹配问题
打开浏览器F12控制台,点击跳转链接后查看实际发起请求的完整路径,确认是否和预期路径一致:如果项目配置了上下文路径,需要确认<c:url>标签是否正确拼接了上下文路径,没有出现多写、漏写前缀的问题。 - 检查请求方法限制
确认Controller方法的请求方式配置:如果方法上只加了@PostMapping("/35yearreunion"),a标签点击发起的是GET请求,会因为请求方式不匹配找不到对应接口返回404,需要改为@GetMapping或无请求方式限制的@RequestMapping。 - 检查静态资源拦截配置
确认静态资源拦截规则是否把/35yearreunion判定为静态资源,直接去静态资源目录查找对应文件,没有转发到Controller处理,找不到文件就返回404。
内容的提问来源于stack exchange,提问作者Frank Serkland
相关产品推荐
相关产品推荐

