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

在Spring Boot应用程序中配置thymeleaf文本模板。属性失败

莘俊能
2023-03-14

我试图在我的Spring引导配置中配置一个简单的thymeleaf文本模板,当模板包含冒号(例如. "[(${#dates.format(date,'dd-MM-yyyy HH: mm')})]" 因为Spring引导试图解析变量"#dates.format(date,'dd-MM-yyyyy HH"但使用默认值"mm")"。

我试图更改PropertySourcesPlaceholderConfigurer的Spring Boot前缀,但是我包含的一些库不再工作,因为它们使用了${}变量

有没有办法扩展thymeleaf来像${}一样处理%{}?

我想避免替换我从配置中读取的模板,因为我在各种属性和类上配置这些模板

ad1:对于配置,我使用一种自定义机制,将xml文件转换为yaml,然后用于配置,所以基本上可以说它是一个应用程序。yml配置文件。在这种情况下,我不能使用自定义模板文件,因为客户必须能够在自定义xml编辑器中配置模板。模板都只是几个单词(比如电子邮件的主题)

共有2个答案

梁祯
2023-03-14

您可以通过包装某些占位符来保护您的表达式,从而将它们隐藏在Spring BootProperty tyResolver机制中:

application.properties:

test-template=[(#{'$'}{#dates.format(date, 'dd-MM-yyyy HH:mm')})]

请参见此处的完整工作代码:https://github.com/62mkv/spring-properties-thymeleaf.

这个解决方案是从这里“借出”的:https://github.com/spring-projects/spring-framework/issues/9628

昝光临
2023-03-14

谢谢62mkv,这似乎通常是解决方案,这就是为什么我将其标记为答案。无论如何,这不是我的解决方案,因为它仍然不起作用,这是因为我使用自定义PropertySourceLoader加载配置的方式

        JAXBContext context = JAXBContext.newInstance(PICONFIG.class);
        PICONFIG config = (PICONFIG) context.createUnmarshaller().unmarshal(resource.getInputStream());
        YAMLFactory factory = new YAMLFactory();
        //factory.disable(YAMLGenerator.Feature.USE_NATIVE_TYPE_ID);
        ObjectMapper mapper = new ObjectMapper(factory);
        mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        String yaml = mapper.writeValueAsString(config);
        PropertySourcesPlaceholderConfigurer c;

        return  new YamlPropertySourceLoader().load(name,new ByteArrayResource(yaml.getBytes(StandardCharsets.UTF_8)));

我现在决定只对我的文本模板使用[(@{})],然后在配置bean的setter中替换@,到目前为止,它似乎可以工作,并且没有什么大问题,因为我重构了代码,为模板使用了一个公共配置类

 类似资料:
  • 我想在HTML中显示一个请求的对象,我得到了一个错误,我不知道是什么原因导致了我的错误。谷歌帮不上忙,现在我试着问你。我认为错误不是来自我的表,因为我把它注释掉了,错误仍然是Occour。该错误也不是来自“http://localhost:8081/simulation”,因为我使用有效值重新接收了一个有效的JSON。谢谢你的帮助:)。 下面是我的代码: 我通过调用“http://localhos

  • 本文向大家介绍SpringBoot中的Thymeleaf模板,包括了SpringBoot中的Thymeleaf模板的使用技巧和注意事项,需要的朋友参考一下 一、前言     Thymeleaf 的出现是为了取代 JSP,虽然 JSP 存在了很长时间,并在 Java Web 开发中无处不在,但是它也存在一些缺陷: 1、JSP 最明显的问题在于它看起来像HTML或XML,但它其实上并不是。大多数的JS

  • Compile Sdk Version: 指定Android的编译版本. 对应build.gradle文件中的参数是: compileSdkVersion 23 Build Tools Version: 指定构建工具的版本. 对应build.gradle文件中的参数是: buildToolsVersion "23.0.2" SDK编译版本和构建工具的版本都是我们已经下载到本地的,如果本地没有就

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

  • 本文向大家介绍springboot中thymeleaf模板使用详解,包括了springboot中thymeleaf模板使用详解的使用技巧和注意事项,需要的朋友参考一下 这篇文章将更加全面详细的介绍thymeleaf的使用。thymeleaf 是新一代的模板引擎,在spring4.0中推荐使用thymeleaf来做前端模版引擎。 thymeleaf介绍 简单说, Thymeleaf 是一个跟 Vel

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