本文最后更新于11 天前,其中的信息可能已经过时,如有错误请发送邮件到kirasu@qq.com
Thymeleaf 实操练习题
环境:SpringBoot + Thymeleaf,全部页面放在templates目录
要求:新建Controller,往Model存入对应数据,编写html页面实现需求;难度逐层递进
题目1【基础:th:text、内联表达式】
- 在Controller向model存入两个数据:
username = “李四”
desc = “欢迎学习Thymeleaf” - html页面实现:
- 使用 th:text 展示username
- 使用内联表达式 [[ ]] 展示desc
涉及语法:th:text、内联表达式
题目2【表单、属性赋值 th:value】
- model存入:realName=”王五”
- 页面编写一个文本输入框,使用th:value将realName作为input默认值
涉及语法:th:value
题目3【动态链接 th:href】
- 页面生成超链接,访问地址
/goods/view,携带参数 goodsId=100 - 链接文字:商品查看
涉及语法:th:href
题目4【条件判断 th:if、th:unless】
- model存入 score = 75
- 页面实现:
- score >=60:展示文字「成绩合格」(th:if)
- score <60:展示文字「成绩不合格」(th:unless)
涉及语法:th:if、th:unless
题目5【多分支 th:switch th:case】
- model存入 rank = 3
- 页面分支判断:
rank ==1 → "金牌会员" rank ==2 → "银牌会员" rank ==3 → "铜牌会员" 其他情况 → "普通游客"涉及语法:th:switch th:case
题目6【循环 th:each + 状态变量】
List<String> foodList = {"米饭","面条","饺子"}
- Controller创建集合,放入model
- 使用th:each循环遍历,展示每一项食物,同时展示序号(从1开始,使用stat.count)
涉及语法:th:each、状态变量stat
题目7【动态class、三元运算符】
- model存入 isVip = true
- div标签,当isVip为true class=”vip-style”;否则 class=”normal-style”
涉及语法:th:class、三元运算
题目8【th:utext 不转义输出】
- model存入 content = “红色文字“
- 使用th:utext渲染content,让页面文字显示红色
涉及语法:th:utext
题目9【内置工具对象#strings、#lists】
- model存入 name=”Thymeleaf”;foodList 复用题目6的集合
- 页面输出:
- name字符串长度
- foodList集合元素总个数
涉及语法:#strings,#lists
题目10【综合大题,多语法组合】
需求:
- model存入:
userList 集合,包含2个用户对象,User类属性 name(String),age(Integer)
tip = “用户列表” - 页面实现:
- 标题使用th:text展示tip
- 循环遍历userList,输出每个用户name、age,以及遍历序号stat.count
- 如果age>=18,用户名字添加css类 adult;否则添加 child(th:class+三元)
- 如果age<18,使用th:if额外显示一行小字:未成年用户
涉及语法:th:text、th:each、stat状态、th:class三元、th:if