Springboot整合thymeleaf登录案例,及thymeleaf常用语法使用示例(附源码下载)
文章目录
- Springboot-cli 开发脚手架系列
- 简介
- 前言
- 1. 环境
- 2. 页面编写
- 3. 编写实体及业务
- 4. 编写接口
- 5. 效果演示
- 6. 源码分享
简介
Springboot整合thymeleaf登录案例,及thymeleaf常用语法使用示例,代码优雅整洁,帮助初学者快速掌握并使用thymeleaf。
前言我们致力于让开发者快速搭建基础环境并让应用跑起来,提供使用示例供使用者参考,让初学者快速上手。
本博客项目源码地址:
- 项目源码github地址
- 项目源码国内gitee地址
- pom.xml
org.springframework.boot spring-boot-starter-web org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-thymeleaf
- application.yml
server:
port: 9999
servlet:
session:
# 让Tomcat只能从COOKIE中获取会话信息,这样,当没有Cookie时,URL也就不会被自动添加上 ;jsessionid=… 了。
tracking-modes: COOKIE
spring:
thymeleaf:
# 关闭页面缓存,便于开发环境测试
cache: false
# 静态资源路径
prefix: classpath:/templates/
# 网页资源默认.html结尾
mode: HTML
2. 页面编写
- 在resources中创建templates文件夹存放页面资源
- 这里通过3个简单的页面演示几种thymeleaf常用的用法,如if和unless、switch、Iteration
- userInfo.html
table1
用户信息
管理员
普通用户
| 用户id | 名称 | 是否启用 | 创建日期 |
|---|---|---|---|
| / | / | / | / |
- index.html
Title
首页
退出登录
用户信息
- login.html
登陆页
3. 编写实体及业务
- User.java
@Data
@Accessors(chain = true)
public class User {
private Long userId;
private String username;
private String password;
private String name;
private String role;
private Boolean enable;
private Date createdDate;
}
- IUserService.java 接口类
public interface IUserService {
boolean login(String username, String password, HttpSession session);
User getUser();
List listUser();
}
- 实现类UserServiceImpl.java,模拟登录及用户数据
@Service
public class UserServiceImpl implements IUserService {
@Override
public boolean login(String username, String password, HttpSession session) {
User user = this.getUser();
if (username.equals(user.getUsername()) && password.equals(user.getPassword())) {
session.setAttribute("user", user);
return true;
}
return false;
}
@Override
public User getUser() {
return new User()
.setName("admin")
.setUserId(1L)
.setRole("admin")
.setUsername("admin")
.setPassword("123456");
}
@Override
public List listUser() {
List users = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
users.add(new User()
.setName("admin" + i)
.setUserId((long) i)
.setUsername("admin" + i)
.setRole("normal")
.setPassword("1000" + i)
.setEnable(i % 2 == 0)
.setCreatedDate(new Date())
);
}
return users;
}
}
4. 编写接口
- IndexController.java首页
@Controller
@Slf4j
@RequiredArgsConstructor
public class IndexController {
private final IUserService iUserService;
@RequestMapping({"/", "/index"})
public String index(Model model, HttpSession session) {
Object user = session.getAttribute("user");
if (Objects.isNull(user)) {
log.error("用户未登录");
return "login";
}
return "index";
}
@RequestMapping("/userInfo")
public String table1(Model model) {
model.addAttribute("users", iUserService.listUser());
return "userInfo";
}
}
- LoginController .java登录
@Controller
@RequiredArgsConstructor
@Slf4j
public class LoginController {
private final IUserService iUserService;
@GetMapping("/login")
public String login() {
return "login";
}
@PostMapping("/doLogin")
public String doLogin(@RequestParam("username") String username, @RequestParam("password") String password, Model model, HttpSession session) {
if (!iUserService.login(username, password, session)) {
model.addAttribute("errorMsg", "账号密码错误");
log.error("登录失败");
return "login";
}
log.info("登录成功");
return "index";
}
@GetMapping("/logout")
public String logout(HttpSession session) {
session.removeAttribute("user");
return "login";
}
}
5. 效果演示
-
整体项目结构
-
启动项目,浏览器输入http://127.0.0.1:9999
-
输入账号密码登录 默认admin,123456
-
查看全部用户信息
本项目已收录
- Springboot-cli开发脚手架,集合各种常用框架使用案例,完善的文档,致力于让开发者快速搭建基础环境并让应用跑起来,并提供丰富的使用示例供使用者参考,帮助初学者快速上手。
- 项目源码github地址
- 项目源码国内gitee地址



