SpringMVC中注解@RequestMapping常见错误

SpringMVC中注解@RequestMapping常见错误:

提示:个人学习记录常见BUG解决问题:

初学SpringMVC时都会学习到注解RequestMapping,而RequestMapping到底是什么呢

1、@RequestMapping注解的功能

从注解名称上我们看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法管理起来,建立映射关系

SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法开处理这个请求。
2、@RequestMapping注解的位置

@RequestMapping标识一个类:设置映射请求的请求路径的初始信息
@RequestMapping标识一个方法:设置映射请求请求路径的具体信息


常见问题1:Cannot resolve MVC view ‘xxx’

提示:访问不到指定页面

例如:想访问index.html时,配置的路径都是对的,配置文件也是对的。可还是访问不出来指定的路径,例如:下图是index的代码
SpringMVC中注解@RequestMapping常见错误_第1张图片

想做个简单的跳转访问,配置都没有问题
SpringMVC中注解@RequestMapping常见错误_第2张图片

可是访问出来却是hello World!
SpringMVC中注解@RequestMapping常见错误_第3张图片

控制层访问代码

@Controller
public class HelloController {
    // @RequestMapping注解:处理请求和控制器方法之间的映射关系
    // @RequestMapping注解的value属性可以通过请求地址匹配请求,/表示的当前工程的上下文路径
    // localhost:8080/springMVC/
    @RequestMapping("/")
    public String index() {
        //设置视图名称
        return "index";
    }
}

并且报了个不能解析视图的提示
SpringMVC中注解@RequestMapping常见错误_第4张图片

Cannot resolve MVC view ‘xxx’ 原因分析:

查找自己项目中是否有重名的文件

例如:创建maven项目时,都会选择webAPP一起创建,此时项目会自带一个index.jsp文件,当你请求index.html时,由于Tomcat特性会自己默认寻找index.jsp login.jsp等文件


Cannot resolve MVC view ‘xxx’ 解决方案:

如果需要跳转到自己想要的页面,删除自带的index.jsp即可,留下自己想要的文件即可,此时在启动项目,就能访问到自己想要的页面

SpringMVC中注解@RequestMapping常见错误_第5张图片
此时就可以成功访问自己想要的页面SpringMVC中注解@RequestMapping常见错误_第6张图片


常见问题2:另外一种Cannot resolve MVC view ‘xxx’

SpringMVC中注解@RequestMapping常见错误_第7张图片

原因分析:

查找自己项目中的文件路径是否与SpringMVC.xml文件配置的路径相匹对

例如:我设置的路径在WEB-INF下的templates包下

<!-- 视图前缀 -->
<property name="prefix" value="/WEB-INF/templates/"/>
 <!-- 视图后缀 -->
<property name="suffix" value=".html"/>

而此时文件却在webapp路径下,如图示例
SpringMVC中注解@RequestMapping常见错误_第8张图片

解决方案:

把文件移到SpringMVC.xml配置相对应的路径下

在这里插入图片描述
此时就可以访问成功
SpringMVC中注解@RequestMapping常见错误_第9张图片

常见问题3:可能是pom.xml文件里thymeleaf版本导致的

SpringMVC中注解@RequestMapping常见错误_第10张图片

常见问题三原因分析:

有些版本兼容问题,试着多更换一下版本

<dependency>
      <groupId>org.thymeleaf</groupId>
      <artifactId>thymeleaf-spring5</artifactId>
      <version>3.0.11.RELEASE</version>
</dependency>

SpringMVC中注解@RequestMapping常见错误_第11张图片

常见问题三解决方案:

修改一下版本号就可以成功访问,这里我修改为3.0.9版本

<dependency>
      <groupId>org.thymeleaf</groupId>
      <artifactId>thymeleaf-spring5</artifactId>
      <version>3.0.9.RELEASE</version>
</dependency>

你可能感兴趣的:(java,spring,maven,tomcat,jar)