【发布时间】:2022-01-22 01:14:54
【问题描述】:
我在 Thymeleaf 模板的样式标签内设置 CSS 字体变量。字体值来自模型 目的。我还想应用默认颜色,以防模型属性不存在。 我正在使用 elvis 运算符来选择默认值 Elvis Operator link
但是当我渲染模板时,它正在搜索brandingConfig,然后是themeConfig,然后是fontName,但fontName是 不存在于themeconfig中。所以不是选择默认值,而是抛出错误。下面是错误 我得到的
org.thymeleaf.exceptions.TemplateProcessingException:评估 SpringEL 表达式的异常: “brandingConfig?.themeConfig?.fontName”。
org.springframework.expression.spel.SpelEvaluationException: EL1008E: 在“java.util.LinkedHashMap”类型的对象上找不到属性或字段“fontName” - 可能不公开或无效?
下面是我的风格标签。我是 Thymeleaf 的新手,我应该在这里做些什么不同的事情?
<style th:inline="text">
:root {
--font-name: [[${brandingConfig?.themeConfig?.fontName}?: 'Proxima Nova']];
--font-url: [[${brandingConfig?.themeConfig?.fontUrl}?: 'https://fonts.googleapis.com/css?family=Proxima+Nova']];
}
【问题讨论】:
-
themeConfig是地图吗?出于好奇,我想知道“?”是什么?表示型号名称后面; brandingConfig?.themeConf... -
@atish.s 是的 themeConfig 是一个地图。
标签: thymeleaf