本文主要结合Maven与SpringMVC快速搭建项目,在已搭建的SpringBoot基础上,利用spring-boot-starter-thymeleaf的引入,做个简单的登录示例。
一、在pom.xml文件中引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
二、每次引进新依赖jar包后,需要点击右上角导入,也可以设置为自动导入,如下图右上角:
三、在右侧工具栏中打开Maven,并在Profiles中勾选dev配置,运行下方的clean,后运行install,此过程中会下载相关依赖包,第一次下载可能需要一点时间
四、在resources文件夹中创建application.yml文件,并添加以下内容
server:
port: 8080
spring:
thymeleaf:
prefix: classpath:/pages/
suffix: .html
mode: HTML
encoding: UTF-8
cache: false
resources:
chain:
strategy:
content:
enabled: true
paths: /**
cache:
period: 0
static-locations: classpath:/pages/
五、在resources文件夹中创建pages文件夹,用于存放静态文件,创建LoginExample.html文件,并添加以下内容
<!DOCTYPE html>
<html lang="en">
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>LoginExample</title>
</head>
<body>
<span th:text="${req.username}"></span>
<form action="#" th:action="@{/login}" method="post" th:object="${req}">
<table border="0">
<tr>
<td>用户名:</td>
<td>
<input type="text" th:field="*{username}" style="width:575px"/>
</td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="text" th:field="*{password}" style="width:575px"/>
</td>
</tr>
</table>
<input type="submit" value="提交" style="width: 150px;font-size: 16px;"/>
<div th:if="${ message }">
<h2 th:text="${ message }"/>
</div>
</form>
</body>
</html>
六、/src/main/java创建ExampleRequest.java类,并添加以下内容
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
七、/src/main/java创建ExampleController.java类,并添加以下内容
@RequestMapping("/home")
public ModelAndView toPage() {
ExampleRequest request = new ExampleRequest();
request.setUsername("test");
Map<String, Object> map = new HashMap<>();
map.put("req", request);
return new ModelAndView("LoginExample", map);
}
@PostMapping("/login")
public ModelAndView login(@ModelAttribute("req") ExampleRequest exampleReq, Model model) {
if (exampleReq.getUsername().equals("test") && exampleReq.getPassword().equals("123456")) {
model.addAttribute("message", "登录成功!");
} else {
model.addAttribute("message", "用户名或密码错误!");
}
return new ModelAndView("LoginExample", "entity", model);
}
整体目录结构如下图: