SpringBoot学习笔记(三)-Thymeleaf

本文介绍了如何在Java的SpringMVC框架中使用Thymeleaf进行页面渲染,包括创建Person类对象,数据绑定到控制器方法,并在前端展示列表和表单内容。
摘要由CSDN通过智能技术生成

bean下的Person类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
    private Long id;
    private String userName;
    private String email;
    private Integer age;
    private String role;

}

controller层

ThymeleafController 
@Controller
public class ThymeleafController {
    @GetMapping("/hello")
    public String hello(@RequestParam("name") String name, Model model){
        model.addAttribute("msg","我是一条新消息");
        model.addAttribute("name",name);
        String text = "<span style='color:red'>"+name+"</span>";
        model.addAttribute("text",text);
        Person person = new Person(1L,"小莉","xiaoli@163.com",22,"CEO");
        model.addAttribute("person",person);

        return "hello";
    }
@GetMapping("/list")
public List<Person> personList(Model model){
    List<Person> list = new ArrayList<>();
    list.add(new Person(1L,"老王","rangyerzs@163.com",24,"HR"));
    list.add(new Person(2L,"老李","overwatch@outlook.com",25,"CEO"));
    list.add(new Person(3L,"小四","Jss@qq.com",26,"CFO"));
    list.add(new Person(4L,"小五" ,"Alexs@edu.com",27,"STAFF"));
    model.addAttribute("persons",list);
    return list;
}
}

前端资源放置

hello.html

<form action="hello" method="post" xmlns:th="http://www.thymeleaf.org">
    <h1>首页</h1>
    <div>
        <input type="text" class="form-control" name="name" placeholder="请输入用户名" required=""
               value="admin"/>
    </div>
    <div>
        <input type="password" class="form-control" name="userPassword" placeholder="请输入密码" required=""
               value="123456"/>
    </div>
    <span th:text="${login}"></span>
    <div>
        <button type="submit" class="btn btn-success">登 录</button>
        <button type="reset" class="btn btn-default">重 填</button>
    </div>
    <h5>图片显示</h5>
    <div>
        <img src="../static/cat.png" />
    </div>
    <span th:text="${msg}">存放消息的位置</span>
    <h2 th:text="${name}">名字</h2>
    <span th:utext= "${text}" >存放文本的位置</span>
    <ul th:object="${person}">
        <li th:text="*{id}"></li>
        <li th:text="*{userName}"></li>
        <li th:text="*{age}"></li>
        <li th:text="*{email}"></li>
        <li th:text="*{role}"></li>
        <li th:if="*{role == 'CEO'}">总裁</li>
    </ul>
    <div class="separator">
        <div>
            <p>©2016 All Rights Reserved. </p>
        </div>
    </div>
</form>

访问hello页面

list.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Thymeleaf</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css"
          rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
</head>
<body>
<table class="table">
    <thead>
    <tr>
        <th scope="col">ID</th>
        <th scope="col">姓名</th>
        <th scope="col">年龄</th>
        <th scope="col">邮箱</th>
        <th scope="col">职务</th>
        <th scope="col">是否成年</th>
        <th scope="col">备注</th>
    </tr>
    </thead>
    <tbody>
    <tr th:each ="per, stats : ${personList}">
        <td th:test ="${stats.count}"></td>
        <td th:text="*{per.id}"></td>
        <td th:text="*{per.userName}"></td>
        <td th:text="*{per.age}"></td>
        <td th:text="*{per.email}"></td>
        <td>
            <span th:if="*{per.role == 'CEO'}">总裁</span>
            <span th:if="*{per.role == 'CFO'}">技术总监</span>
            <span th:if="*{per.role == 'HR'}">人力资源</span>
            <span th:if="*{per.role == 'STAFF'}">员工</span>

        </td>
        <td ><span th:if="*{per.age >= 18}">已成年</span>
            <span th:if="*{per.age < 18}">未成年</span>
        </td>
        <td>
            index: [[${stats.index}]] <br/>
            count: [[${stats.count}]] <br/>
            size(总数量) : [[${stats.size}]]<br/>
            current(当前对象): [[${stats.current}]] <br/>
            even(true)/odd(false): [[${stats.even}]] <br/>
            first: [[${stats.first}]] <br/>
            last: [[${stats.last}]] <br/>
        </td>
    </tr>
    </tr>
    </tbody>
</table>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-/mhDoLbDldZc3qpsJHpLogda//BVZbgYuw6kof4u2FrCedxOtgRZDTHgHUhOCVim" crossorigin="anonymous"></script>
</body>
</html>

自己建的application.yaml

yaml优先级高于properties

server:
  port: 9090
spring:
  mvc:
    webjars-path-pattern: /***
    static-path-pattern: /static/**

访问list页面

Spring Boot是一种基于Spring框架的快速开发框架,它能够帮助开发者在短时间内快速搭建一个基于Spring的应用。下面是关于Spring Boot学习笔记。 1. Spring Boot的优势 - 简化配置:Spring Boot能够通过自动配置、约定大于配置、starter模块等方式简化配置。 - 集成多种技术:Spring Boot集成了多种技术,例如Spring Data、Spring Security、Thymeleaf等。 - 内嵌Web容器:Spring Boot内置了Tomcat、Jetty、Undertow等Web容器,可以让应用程序快速启动。 - 简化开发:Spring Boot提供了很多便利的工具和插件,例如Spring Boot CLI、Spring Boot Actuator等。 2. Spring Boot的基本结构 Spring Boot应用程序的基本结构包括以下部分: - src/main/java:Java源代码 - src/main/resources:资源文件 - src/test/java:测试源代码 - src/test/resources:测试资源文件 - pom.xml:Maven项目配置文件 3. Spring Boot的注解 Spring Boot中常用的注解包括: - @SpringBootApplication:标记一个主程序类,表示这是一个Spring Boot应用程序。 - @RestController:标记一个类,表示这是一个控制器类。 - @RequestMapping:标记一个方法,表示请求的URL映射。 - @Autowired:表示自动装配,Spring Boot会自动注入依赖。 - @Value:表示属性注入,可以通过application.properties文件读取配置信息。 4. Spring Boot的配置 Spring Boot的配置方式包括: - application.properties:在src/main/resources目录下创建application.properties文件,可以通过该文件设置应用程序的配置信息。 - application.yml:在src/main/resources目录下创建application.yml文件,可以通过该文件设置应用程序的配置信息。 - @ConfigurationProperties:可以通过该注解将配置文件中的属性注入到Java Bean中。 5. Spring Boot的测试 Spring Boot提供了很多测试工具和框架,例如: - @SpringBootTest:表示一个Spring Boot应用程序的集成测试。 - @RunWith:表示运行测试的类。 - MockMvc:可以模拟HTTP请求和响应,测试控制器。 - TestRestTemplate:可以测试RESTful Web服务。 6. Spring Boot的部署 Spring Boot的部署方式包括: - 打包成jar文件:可以通过Maven插件将Spring Boot应用程序打包成可执行的jar文件,然后通过java -jar命令启动应用程序。 - 打包成war文件:可以通过Maven插件将Spring Boot应用程序打包成war文件,然后将war文件部署到Web容器中运行。 - Docker容器化部署:可以将Spring Boot应用程序打包成Docker镜像,然后运行Docker容器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哩吇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值