SpringMVC中注解@RequestMapping常见错误:
提示:个人学习记录常见BUG解决问题:
初学SpringMVC时都会学习到注解RequestMapping,而RequestMapping到底是什么呢
1、@RequestMapping注解的功能
从注解名称上我们看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法管理起来,建立映射关系
SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法开处理这个请求。
2、@RequestMapping注解的位置
@RequestMapping标识一个类:设置映射请求的请求路径的初始信息
@RequestMapping标识一个方法:设置映射请求请求路径的具体信息
常见问题1:Cannot resolve MVC view ‘xxx’
提示:访问不到指定页面
例如:想访问index.html时,配置的路径都是对的,配置文件也是对的。可还是访问不出来指定的路径,例如:下图是index的代码
想做个简单的跳转访问,配置都没有问题
可是访问出来却是hello World!
控制层访问代码
@Controller
public class HelloController {
// @RequestMapping注解:处理请求和控制器方法之间的映射关系
// @RequestMapping注解的value属性可以通过请求地址匹配请求,/表示的当前工程的上下文路径
// localhost:8080/springMVC/
@RequestMapping("/")
public String index() {
//设置视图名称
return "index";
}
}
并且报了个不能解析视图的提示

Cannot resolve MVC view ‘xxx’ 原因分析:
查找自己项目中是否有重名的文件
例如:创建maven项目时,都会选择webAPP一起创建,此时项目会自带一个index.jsp
文件,当你请求index.html
时,由于Tomcat特性会自己默认寻找index.jsp
login.jsp
等文件
Cannot resolve MVC view ‘xxx’ 解决方案:
如果需要跳转到自己想要的页面,删除自带的
index.jsp
即可,留下自己想要的文件即可,此时在启动项目,就能访问到自己想要的页面
此时就可以成功访问自己想要的页面
常见问题2:另外一种Cannot resolve MVC view ‘xxx’
原因分析:
查找自己项目中的文件路径是否与SpringMVC.xml文件配置的路径相匹对
例如:我设置的路径在WEB-INF下的templates包下
<!-- 视图前缀 -->
<property name="prefix" value="/WEB-INF/templates/"/>
<!-- 视图后缀 -->
<property name="suffix" value=".html"/>
而此时文件却在webapp路径下,如图示例
解决方案:
把文件移到SpringMVC.xml配置相对应的路径下
此时就可以访问成功
常见问题3:可能是pom.xml文件里thymeleaf版本导致的
常见问题三原因分析:
有些版本兼容问题,试着多更换一下版本
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
常见问题三解决方案:
修改一下版本号就可以成功访问,这里我修改为3.0.9版本
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.9.RELEASE</version>
</dependency>