学习SpringMVC,导入spring-webmvc和thymeleaf依赖如下时可以正常运行;
但是我按照pom.xml中的提示,将spring-webmvc版本升级到最新的6.0.8版本时,会报错:
java: 无法访问jakarta.servlet.ServletException;找不到jakarta.servlet.ServletException的类文件。
我的jdk17,tomcat9,spring-webmvc6.0版本和哪里不兼容呢?
还是说跟thymeleaf-spring5不兼容呢?可是我将thymeleaf-spring6导入后,浏览器报500错误。
不知道是什么原因,请教大伙
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.14</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
根据你提供的信息,可能是因为你的Spring Web MVC版本和Servlet API版本不兼容导致的。从Spring Framework 5.3.x开始,它已经升级到Java Servlet API 5.0。而Tomcat 9使用的是Java Servlet API 4.0。这可能会导致在你的应用程序中出现与Servlet API相关的错误。
解决此问题的方法之一是升级Tomcat的版本,或者使用与Java Servlet API 4.0兼容的Spring版本。你可以尝试将Spring Web MVC版本降级到5.2.x或更早的版本,或者将你的Tomcat升级到Tomcat 10或更高版本,以支持Java Servlet API 5.0。
此外,你也需要确保你的Thymeleaf版本与Spring Web MVC版本兼容。从Thymeleaf官方网站的文档可以看到,Thymeleaf 3.1.x版本与Spring Framework 5.2.x和5.3.x兼容。因此,你可以尝试将Thymeleaf版本更新到3.1.x系列的最新版本,例如3.1.13.RELEASE。
最后,当你更改了依赖关系后,建议你清除Maven本地仓库的缓存,以确保使用正确版本的依赖。
希望这些信息可以帮助你解决问题。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
SpringMVC它通过一套注解,让一个简单的Java类变成处理请求的控制器,而无须实现任何接口,同时还支持RestFul编程风格的请求
SpringMVC是为了解决表现层问题的Web框架,是基于MVC设计模式的轻量Web框架,
主要职责就是处理前端Http请求。
SpringMVC本质上可以认为是对Servlet的封装,简化了代码开发。
Servlet会有多个Servlet处理请求,处理完再去相应的Web层处理返回结果