gpt4 book ai didi

spring - Thymeleaf 找不到消息源

转载 作者:行者123 更新时间:2023-12-05 01:04:01 28 4
gpt4 key购买 nike

我实际上对我的 Thymeleaf 配置的一部分感到困惑。

我有一个位于 classpath:/messages/web.properties 的属性文件.在我的配置中定义了以下内容。

@Bean
public MessageSource messageSource() {
final ResourceBundleMessageSource messageSource;

messageSource = new ResourceBundleMessageSource();
messageSource.setDefaultEncoding("UTF-8");
messageSource.setBasename("messages/web");

return messageSource;
}

如果我使用此配置运行我的应用程序,一切正常。来自属性文件的消息被注入(inject)到 Thymeleaf 模板中(如预期的那样)。

但是,如果我更改创建消息源的方法的名称,重新启动我的应用程序并请求相同的页面...然后来自我的 web.properties 的消息找不到文件。
@Bean
public MessageSource webMessageSource() {
[...]
}

为什么消息资源的bean名称(=方法名称)对我的应用程序有这种影响?

为什么消息来源 webMessageSource Thymeleaf 模板引擎找不到?

最佳答案

在 Thymeleaf 源代码中进行了一些挖掘之后,我发现在类 SpringTemplateEngineJavadoc明确指出:

It also configures a {@link SpringMessageResolver} as message resolver, and implements the {@link MessageSourceAware} interface in order to let Spring automatically setting the {@link MessageSource} used at the application (bean needs to have id "messageSource"). If this Spring standard setting needs to be overridden, the {@link #setTemplateEngineMessageSource(MessageSource)} can be used.



重要的部分是 bean 需要有 id "messageSource"

正如@ShinichiKai 所述, this Spring 文档的一部分提到 Spring 中 MessageSource bean 的名称必须是 messageSource .

关于spring - Thymeleaf 找不到消息源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23980767/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com