当前位置: 首页 > 知识库问答 >
问题:

Thymeleaf模板通过在CSS文件中转义磅符号来解析模型属性

钱卓君
2023-03-14

当我尝试使用Thymeleaf将一些基本CSS加载到我的CSS文件中时,Thymeleaf完成了这项工作,但是当我使用像#和任何形式的括号这样的特殊字符时,它会被\

我现在想做的就是动态获取一个HEX颜色值(在本例中是SQL数据库),并将其加载到我的CSS文件中。

注意:我对Spring MVC和Thymeleaf相当陌生,所以我可能忽略了一个可能的解决方案,而不知道它是解决方案。

我理解为什么Thymeleaf觉得应该避开这些字符,因为它们在html和xhtml中可能会有很大的问题,但这是CSS,只需要按原样插入原始文本。

我自己也使用过HTML实体以及对磅(#)进行编码,但它在CSS中不起作用,我也觉得这不是最好的解决方案,即使是这样:HTML实体(十进制)#HTML实体(十六进制)#

我还采用Javascript方法来解析模板,但它不适用于CSS。

CSS类在我的. css文件:

.bgMainColor{
    background-color:/*[[${styleProperties.Main_Color}]]*/ pink;
}

在我的JAVA Controller中,我将模型属性设置如下:

model.addAttribute("styleProperties", properties);

注意:属性包含样式属性的列表,如主颜色。控制器中的一切工作正常,Thymeleaf知道何时将模型传递到CSS文件,CSS被插入,但没有正确插入。

然后CSS将呈现为:

.bgMainColor{
    background-color: \#1BC6B4;
}

由于明显的原因,这不起作用。

我到处找,找不到有效的解决方案。必须有一种方法“告诉”Thymeleaf正在解析的模板是CSS而不是html。

如果有人能给我一个解决方案,或者能为我指明正确的方向,让我像自己做这项工作一样自学,我将不胜感激。

共有1个答案

彭宏义
2023-03-14

我认为Thymeleaf试图将您的CSS作为CSS标识符进行转义。

也就是说,您只需从转义形式/*[[${…}]]更改表达式即可*/ 到未转换的表单/*[(${…})]*/ 并且它不会逃脱您的颜色代码。

.bgMainColor{
    background-color: /*[(${styleProperties.Main_Color})]*/ pink;
}

 类似资料:
  • 我正在使用库贝css框架(https://imperavi.com/kube/css/buttons/)。但是我不能在我的项目中实现这个框架。 当我尝试这样使用按钮时,会出现以下异常: 与元素类型“button”关联的属性名“small”后面必须跟“=”字符 这个按钮有小的和轮廓的属性吗。

  • 我需要使用Thymeleaf模板为不同地区发送电子邮件。 我的HTML中有下一部分 我有下一个密码 我有下一个豆子 我正在使用下一个依赖项 我在“资源”文件夹中有我需要的每种语言的资源包消息。如果你用ctrl左键从我的html中检查#{TEST},你可以看到它看到属性文件,所以IDEA可以解析它。 当我运行我的应用程序并尝试发送电子邮件时,我得到了下一个结果 ??TEST_de?? 对于其他语言,

  • 我正在用Spring MVC和Thymeleaf在视图层开发一个完整的Spring应用程序。过去,我在视图层中使用过JSP和Spring MVC,但我想它们现在是恐龙了 所以我的问题是,使用JSP,通过在模型中添加值,我可以很容易地在视图中显示模型属性。在控制器中添加属性,并在JSP anywhere中显示相同的属性,占位符求值为springex${value}。所以,如果我想在页面中放置标题,我

  • 我需要在电子邮件模板(thymeleaf)中插入样式。我需要为几个模板制作一个通用的css文件。 使用Spring引导1.3.3 我试图遵循以下帖子中的内容:Thymeleaf CSS SpringBoot 电子邮件文件:资源 我为邮件使用WebContext(我以前使用上下文,但上下文不接受相对路径,需要WebContext)。 在我的css: 在我的模板中: 结果是邮件被发送,但css样式没有

  • 本文向大家介绍SpringBoot使用thymeleaf模板过程解析,包括了SpringBoot使用thymeleaf模板过程解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了SpringBoot使用thymeleaf模板过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.导入依赖 2.application.yml文件中新

  • 下面是index.html 它们在不同的文件夹中,但pathing应该工作,除非我只是错过了一些真正愚蠢的东西。