使用SpringBoot与Thymeleaf开发,求解释out.html模板相关问题
嘿,我瞅了下你贴的out.html代码片段,先给你揪几个容易踩坑的地方,应该能解决你的困惑:
Thymeleaf命名空间写错了!
你代码里的xmlns:th="http:www.thymeleaf.org"少了个斜杠,正确的写法是:xmlns:th="http://www.thymeleaf.org"这个错误会直接导致Thymeleaf的所有指令(比如
th:href、th:if)完全失效,模板只会被当成普通HTML解析,这大概率是你遇到问题的核心原因。静态资源路径要对应正确位置
你用了th:href="@{/css/style.css}"这个路径语法是对的,但得确保你的style.css文件放在Spring Boot项目的src/main/resources/static/css/目录下——Spring Boot默认会从static目录加载静态资源,放错位置的话浏览器会报404找不到样式。列表判断要避免空指针
你写的th:if="${not #lists.isEmpty(list)}"逻辑没问题,但得保证后端Controller已经把名为list的集合对象放到Model里了,比如后端代码要这样写:@GetMapping("/your-page-url") public String showOutPage(Model model) { // 这里替换成你实际的集合数据 List<YourEntity> list = yourService.getListData(); model.addAttribute("list", list); return "out"; // 对应templates目录下的out.html }如果后端没传
list或者传的是null,Thymeleaf会报错,建议改成更安全的写法:<div th:if="${list != null and not #lists.isEmpty(list)}">HTML标签要闭合完整
你贴的代码最后是<table class ="table table-striped"...,记得把表格的标签补全,比如加上<thead>、<tbody>和对应的</table>标签,HTML结构不完整会导致页面渲染错乱。
先把这些问题逐个修正,应该就能正常渲染模板了!
内容的提问来源于stack exchange,提问作者Юра Чорнота

