thymeleaf模板引擎else
时间: 2023-12-13 16:31:48 浏览: 82
Thymeleaf模板引擎中可以使用`th:if`和`th:unless`来实现条件判断,同时也提供了`th:else`来实现条件分支中的else语句。具体使用方法如下:
```html
<div th:if="${user.isAdmin}">
<p>Welcome, Admin!</p>
</div>
<div th:unless="${user.isAdmin}">
<p>Welcome, User!</p>
</div>
```
上述代码中,如果`user.isAdmin`为true,则输出`<p>Welcome, Admin!</p>`,否则输出`<p>Welcome, User!</p>`。如果需要在`th:if`和`th:unless`之间添加else语句,可以使用`th:else`,如下所示:
```html
<div th:if="${user.isAdmin}">
<p>Welcome, Admin!</p>
</div>
<div th:unless="${user.isAdmin}" th:else>
<p>Welcome, User!</p>
</div>
```
上述代码中,如果`user.isAdmin`为true,则输出`<p>Welcome, Admin!</p>`,否则输出`<p>Welcome, User!</p>`。
相关问题
利用 SpringBoot搭建项目,整合ThymeLeaf、MySQL、Mybatis编写程序实现一个简单的个人身份信息查询功能。具体要求如下: (1)数据库名为db_personInfo,数据表为tb_user,表中属性包括id,code username,sex,age,address,tel,分别表示用户id,身份证号,姓名,性别,年龄,地址,联系电话。 (2)用户通过访问“lgetuserInfo”页面,输入身份证号,查询个人信息 (3)如果信息正确,则通过ThymeLeaf模板引擎返回touserhtml页面,显示用户身份信息(身份证号,姓名,性别,年龄,地址,联系电话) (4)如果用户不存在,则通过ThymeLeaf模板引擎返回errorhtml页面,提示用户输入信息错误 请给出整个系统详细的设计步骤思路和每个步骤中的关键代码(注:包括数报库创建和系统搭建过程)。
系统设计步骤思路如下:
1. 创建数据库和表
首先需要在MySQL中创建数据库和表,创建语句如下:
```sql
CREATE DATABASE db_personInfo;
USE db_personInfo;
CREATE TABLE tb_user (
id INT PRIMARY KEY AUTO_INCREMENT,
code VARCHAR(20) NOT NULL,
username VARCHAR(20) NOT NULL,
sex VARCHAR(2) NOT NULL,
age INT NOT NULL,
address VARCHAR(50) NOT NULL,
tel VARCHAR(20) NOT NULL
);
```
2. 创建SpringBoot项目
使用Spring Initializr创建一个SpringBoot项目,在pom.xml中添加依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
```
3. 配置数据源和Mybatis
在application.properties文件中配置数据源和Mybatis:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/db_personInfo?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.configuration.map-underscore-to-camel-case=true
```
然后在mapper目录下创建UserMapper.xml文件,编写SQL语句:
```xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.demo.mapper.UserMapper">
<resultMap id="userMap" type="com.example.demo.entity.User">
<id column="id" property="id" />
<result column="code" property="code" />
<result column="username" property="username" />
<result column="sex" property="sex" />
<result column="age" property="age" />
<result column="address" property="address" />
<result column="tel" property="tel" />
</resultMap>
<select id="selectUserByCode" resultMap="userMap">
SELECT * FROM tb_user WHERE code = #{code}
</select>
</mapper>
```
4. 编写实体类和DAO接口
在entity包下创建User类:
```java
public class User {
private Integer id;
private String code;
private String username;
private String sex;
private Integer age;
private String address;
private String tel;
// getter and setter
}
```
在mapper包下创建UserMapper接口:
```java
@Mapper
public interface UserMapper {
User selectUserByCode(String code);
}
```
5. 编写Controller和ThymeLeaf模板
在controller包下创建UserController类:
```java
@Controller
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/getUserInfo")
public String getUserInfo() {
return "getUserInfo";
}
@PostMapping("/getUserInfo")
public String postUserInfo(String code, Model model) {
User user = userMapper.selectUserByCode(code);
if (user != null) {
model.addAttribute("user", user);
return "toUser";
} else {
return "error";
}
}
}
```
在templates目录下创建getUserInfo.html、toUser.html和error.html文件:
getUserInfo.html:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询个人信息</title>
</head>
<body>
<form action="#" method="post">
<label>请输入身份证号:</label>
<input type="text" name="code" />
<input type="submit" value="查询" />
</form>
</body>
</html>
```
toUser.html:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>个人身份信息</title>
</head>
<body>
<table border="1">
<tr>
<td>身份证号</td>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
<td>地址</td>
<td>联系电话</td>
</tr>
<tr>
<td th:text="${user.code}"></td>
<td th:text="${user.username}"></td>
<td th:text="${user.sex}"></td>
<td th:text="${user.age}"></td>
<td th:text="${user.address}"></td>
<td th:text="${user.tel}"></td>
</tr>
</table>
</body>
</html>
```
error.html:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询失败</title>
</head>
<body>
<h1>查询失败,请检查身份证号是否正确!</h1>
</body>
</html>
```
6. 运行程序
运行程序,在浏览器中访问http://localhost:8080/getUserInfo,输入身份证号进行查询,系统会根据数据库中的数据返回相应的信息,或者返回查询失败的提示信息。
关键代码如上所示,需要注意的是,要正确配置数据源和Mybatis,还需要注意ThymeLeaf模板引擎的使用。
使用Thymeleaf模板完成保单定制化
Thymeleaf是一个强大的开源Java模板引擎,常用于Spring MVC项目中,它能让你在HTML页面上编写动态内容,如数据绑定、条件渲染等,非常适合实现保单定制化的场景。以下是使用Thymeleaf构建保单定制功能的一般步骤:
1. **依赖引入**:在Maven或Gradle项目中添加Thymeleaf的依赖,例如在Maven中添加:
```xml
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.17.RELEASE</version>
</dependency>
```
2. **配置视图解析器**:在Spring Boot的`application.properties`或`application.yml`文件中设置Thymeleaf模板引擎作为视图解析器。
3. **创建模板**:创建一个`.html`文件,比如`custom-policy.html`,使用Thymeleaf的语法来显示变量和条件部分:
```html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<h1 th:text="${policyTitle}">默认标题</h1>
<!-- 定制字段 -->
<form action="#" th:action="@{/savePolicy}" th:object="${customPolicy}">
<input type="text" th:name="policyDescription" placeholder="描述"/>
...
<button type="submit">保存定制</button>
</form>
</body>
</html>
```
4. **控制器处理**:在Spring MVC的Controller中,处理模板请求并填充模型属性,比如`policyTitle`和`customPolicy`对象:
```java
@GetMapping("/custom-policy")
public String showCustomPolicy(@ModelAttribute("customPolicy") CustomPolicy policy) {
Model model = new Model();
// 填充模型对象,例如从数据库获取数据
model.addAttribute("policyTitle", "定制保单");
return "custom-policy";
}
@PostMapping("/savePolicy")
public String savePolicy(CustomPolicy policy, BindingResult result) {
if (result.hasErrors()) {
// 处理错误...
} else {
// 保存定制信息到数据库
...
return "redirect:/success";
}
return "custom-policy"; // 如果有错误则返回相同的模板
}
```
阅读全文