未添加到Model的Thymeleaf变量表达式默认渲染行为是什么?
回答
没错,这就是Thymeleaf针对未定义变量表达式的默认行为。
Thymeleaf的设计逻辑里,当表达式${message}引用了Model中不存在的变量时,会返回null。而th:text属性在处理null值时,会将对应标签的内容设置为空字符串,所以最终渲染出的就是空的<p>标签,整个过程不会抛出任何异常——这是框架特意做的容错设计,避免因为某个变量缺失导致整个页面渲染失败。
如果需要改变这种行为,有两种常见方式:
- 给变量设置默认值:使用Thymeleaf的
??Elvis运算符,当变量不存在时显示预设内容,比如:<p th:text="${message} ?? '暂无内容'"></p> - 开启严格变量检查:在Spring Boot配置文件中开启Spring EL的严格解析模式,这样引用未定义的变量时会直接抛出异常,方便开发阶段排查问题:
spring.thymeleaf.spring-el.parser-mode=STRICT
内容的提问来源于stack exchange,提问作者Zephyr_8
相关产品推荐
相关产品推荐

