springboot 项目结构 + thymeleaf + JSON

一.springboot 项目结构

image

@Controller:这里将PageController类标记为SpringMVC的控制器,负责接收和处理HTTP请求
@RequestMapping("/page22"):作用是将 HTTP 请求路径 /page22 映射到下面的 page2() 方法
 (当用户在浏览器或前端发起 http://xxx/page22 请求时,Spring 就会调用这个方法来处理)
System.out.println("page2"):当 page2() 方法被调用时,会在控制台打印 page2,方便你确认方法是否被执行。
return "page2":Spring Boot 会自动将这个逻辑视图名解析为page2.html 文件,然后渲染这个页面并返回给用户。

完整执行流程
1.用户访问 http://xxx/page22
2.Spring 通过 @RequestMapping 匹配到 page2() 方法
3.控制台打印 page2
4.返回 "page2",框架找到 templates/page2.html 并渲染
5.最终将 page2.html 页面展示给用户
image
image
输入前端超链接里的username,password值会传到PageController类中,
作为page2()方法的参数,即作为dataMap的值,
在dataMap.put(“username”,username)中传递给“username”,”password”,
“username”,”password”再将值映射到前端.xml文件中并渲染,
最终将 page2.html 页面展示给用户

二.thymeleaf (动态渲染)

1.文本替换渲染

  <div th:text="'你好'+${name}"></div>
  • ${name}:取后端 Model/Map 传递的name变量值

2.条件渲染

  <div th:if="${sex}">男</div>
  <div th:unless="${sex}">女</div>
  
  <div th:if="${age}>=18">成年人</div>
  <div th:unless="${age}>=18">未成年</div>

语法拆解

  • th:if="${sex}":条件为true时,渲染当前<div>(显示男);
  • th:unless="${sex}":等价th:if="!${sex}",条件为false时,渲染当前<div>(显示女);
  • ${sex}:取后端Model/Map传递的布尔类型sex变量(true/false)。

3.循环渲染

  <div th:each="str:${nameList}">
       <span th:text = "${str}"></span>
  </div>

  • th:each 是 Thymeleaf 的循环标签,这里会遍历 nameList 集合,每次循环把当前元素赋值给变量 str。
    每循环一次,就会生成一个新的

    标签。

  • th:text 会把变量 str 的值作为纯文本填充到 标签里,也就是显示当前循环到的 nameList 中的元素。

    <div th:text="${dataMap.username}"></div>
    <div th:text="${dataMap.password}"></div>
    

4.Thymeleaf 嵌套Map取值

核心作用

从后端传递的嵌套Map(dataMap)中,分别取出usernamepassword的值,渲染为纯文本展示在页面上。

语法拆解

  • th:text:Thymeleaf文本渲染属性,覆盖标签内容,展示纯文本;
  • ${dataMap.username}:等价${dataMap.get("username")},先取后端的dataMap对象,再获取其内部username键对应的值;
  • ${dataMap.password}:同上,取dataMap内部password键对应的值。

三.JSON

1.格式

{
"id": 1,
"username": "zhangsan",
"password": "123456",
"roles": ["admin", "user"]
}

2.使用

对json数据的处理
@RequestBody加上后 可json字符串传递值(前端到后端) 对参数修饰
@ResponseBody 加上后 后端传前端 对类的修饰 返回值只会使数据

posted @ 2026-01-29 22:30  doremi_h2  阅读(4)  评论(0)    收藏  举报