SpringBoot集成Thymeleaf出现模板解析错误EL1007E空指针异常求助
问题根因
报错栈最底层异常EL1007E: Property or field 'content' cannot be found on null已经明确说明:模板中调用${page.content}时,page对象为null,没有对应content属性导致空指针。
你在Controller中调用pageRepository.findBySlug("home")查询slug为home的页面记录时,数据库不存在对应记录,返回了null,且你直接将null存入Model传递到模板,触发渲染异常。
解决方案
1. 补全数据库数据
首先检查pages表中是否存在slug字段值为home的记录,没有的话先插入一条测试数据,确保content字段有有效值。
2. 代码空值兼容(二选一即可,建议同时配置)
方案A:Controller层兜底处理
SpringMVC传入的Model对象永远不为空,不需要声明为可空类型;同时对查询结果为空的场景做兜底:
@GetMapping fun home(model: Model):String{ val page: Page?= pageRepository.findBySlug("home") // 不存在首页记录时返回默认Page对象,也可根据业务需求跳转到404页面 model.addAttribute("page",page ?: Page( title = "首页", slug = "home", content = "<p>欢迎访问站点首页</p>" )) return "page" }
方案B:模板层兼容空值
使用Thymeleaf支持的安全导航运算符?.,即使page为null也不会抛出异常,只会渲染为空内容:
修改page.html中对应代码行:
<div class="col-7" th:utext="${page?.content}"></div>
注:原代码中col="7"为错误写法,修正为class="col-7"符合Bootstrap语法,避免后续布局异常
内容的提问来源于stack exchange,提问作者Mama
相关产品推荐
相关产品推荐

