登录方法为什么会404,半年不写不分离版就不会写了,帮帮我(springboot thymeleaf)
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
首先,对于返回404错误,需要仔细检查代码中的URL是否正确以及@Controller注解是否正确添加。其次,需要确认是否存在对应的HTML页面。如果以上都没有问题,可以考虑使用Thymeleaf语法进行调试和解决问题。具体步骤如下:
@RequestMapping("/login")
public String login(Map<String, Object> map) {
map.put("message", "欢迎登录");
return "login";
}
其中,map.put()中的数据会被放到请求域中,键为"message",值为"欢迎登录"。其返回的字符串,表示需要使用名为"login"的HTML页面进行渲染。需要注意的是,页面的位置应该符合Spring Boot中默认的模板位置(即/src/main/resources/templates/)。
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h1 th:text="${message}"></h1>
</body>
</html>
其中,th:text="${message}"表示将页面中
spring.thymeleaf.templateResolverOrder=1
然后,在自定义Bean中创建ITemplateResolver并将order和前缀和后缀设置为0,例如:
@Bean
public ClassLoaderTemplateResolver emailTemplateResolver() {
ClassLoaderTemplateResolver emailTemplateResolver = new ClassLoaderTemplateResolver();
emailTemplateResolver.setPrefix("mails/");
emailTemplateResolver.setSuffix(".html");
emailTemplateResolver.setTemplateMode(TemplateMode.HTML);
emailTemplateResolver.setCharacterEncoding("UTF-8");
emailTemplateResolver.setOrder(0);
emailTemplateResolver.setCheckExistence(true);
return emailTemplateResolver;
}
注意,这里的顺序设置为0很重要,可以在ThymeleafConfigurator配置文件中进行设置。
以上是解决该问题的具体步骤和方法,如果还存在其他问题,可以通过调试和查看日志,得到进一步的解决方案。
可以看看ruoyi,他有单体架构的版本,跟这种方式差不多。
thymeleaf的jar包引入了吗
又能跑了,太奇怪了