現象
在搭建一個springboot架構前,突然發現通路控制層的json資料等都沒問題,debug也能進入控制層的請求方法中,但是在傳回到thymeleaf模闆頁面就報404
@RequestMapping(value = {"/","index"})
public String myIndex() {
return "index";
}
嘗試解決
以前也是如此搭建的,是沒問題的,于是乎上網查了下,大概有如下兩種說法:
第一種:控制層中的方法路徑中的index 不能和傳回的view的名稱一緻:嘗試改變,問題依然存在
第二種:mavn jar包沖突,需要将本地的mavn倉庫清空了,讓重新下載下傳jar包:嘗試,問題依然存在。
最終解決辦法
其實我還是懷疑上面第二種就是我的錯,因為我是在父子產品下開了多各 子產品,之前存在了兩個子子產品。
為了排除幹擾,于是,我單獨建立了一個獨立的springboot項目,照例配置,竟然成功了。。。
排查發現新生成的springboot的版本是2.4.1,而之前有問題的springboot的版本是2.2.7.RELEASE,
于是修改了sprinboot的版本到2.4.1,發現問題解決了。。。
這個時候覺得應該是springboot的版本和下面的thymeleaf的版本是不是對應出的問題,于是本着再驗證的态度,又把springboot的版本号再改回去
結果問題也解決了。。。。。
結論
沒有結論,問題解決了,修改了sprigboot的版本到最新的,然後再傳回去,就好了。自我感覺應該還是mavenjar包的問題。
附
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.nj</groupId>
<artifactId>springboot-security</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-security</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.yml
spring:
thymeleaf:
prefix: classpath:/templates/
cache: false
suffix: .html
encoding: UTF-8
servlet:
content-type: text/html