如何从 thymeleaf 中的属性文件中读取值

Posted

技术标签:

【中文标题】如何从 thymeleaf 中的属性文件中读取值【英文标题】:How to Read values from a properties file in thymleaf 【发布时间】:2019-08-07 23:56:39 【问题描述】:

有没有办法使用 spring boot 从 thymleaf 中的属性文件中读取值? 例如:- 验证消息,从属性文件中加载标签。

我正在使用 spring boot 2.1.3 版本 & thymleaf 3.0.11 版本 我需要使用属性文件在我的应用程序中动态设置标签。我找不到直接在 thymleaf 中访问属性文件的方法。

我尝试在资源中创建 lables.properties 文件 例如:-

field1 = "Name"
field2 = "Description"

我尝试使用这样的方式在 thymleaf 中访问,

<a href="./admin"><p class="text-uppercase" th:text="#field1"></p></a> 

但它不是这样工作的。

它在我的 html 视图中显示为 ??label1_en_US??"。 谁能帮我解决这个问题?

【问题讨论】:

【参考方案1】:

尝试将您的 lables.properties 重命名为 messages.properties 以使其由 Spring Boot 自动解决。

如果这仍然不起作用,请考虑定义一个显式消息源,例如:

@Bean
public MessageSource messageSource() 
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
    messageSource.setBasenames("classpath:/messages");
    messageSource.setDefaultEncoding("UTF-8");
    return messageSource;

基本名称基本上是您的属性文件的名称,不带 .properties 扩展名。

【讨论】:

感谢您的回答,它真的很有帮助。您提供的两个选项都可以正常工作。当我写明确的消息源时我需要澄清一件事我在 Spring Boot 主类中写的它是正确的还是我必须以不同的方式写它? 谢谢。关于主要课程与否。如果您有一个相当小的应用程序,并且这将是您唯一手动定义的 bean,我会将其放入主类中。如果您的应用程序往往更大,那么配置 bean 的逻辑分离是有意义的。最后,这真的取决于你! 非常感谢你帮助我,现在我明白了我真正想要的是什么。再次提前感谢。

以上是关于如何从 thymeleaf 中的属性文件中读取值的主要内容,如果未能解决你的问题,请参考以下文章

Thymeleaf:如何获取 URL 属性值

无法从 Spring Boot 中的外部属性文件中读取值

WebdriverIO:如何从 wdio.conf.js 读取 baseURL 值。内部步骤定义文件

thymeleaf模板之href属性

thymeleaf模板之href属性

Thymeleaf:对象中的对象,无法像jsp那样访问值?属性或字段 - 在 null 上找不到