gpt4 book ai didi

spring - 放置在文件夹中时找不到 MessageSource 的 ResourceBundle

转载 作者:IT老高 更新时间:2023-10-28 13:47:46 38 4
gpt4 key购买 nike

我正在尝试将资源包与 Spring 的消息源一起使用。这是我的做法:

@Component
public class MessageResolver implements MessageSourceAware {

@Autowired
private MessageSource messageSource;

public void setMessageSource(MessageSource messageSource) {
this.messageSource = messageSource;
}

public String getMessage(){
return messageSource.getMessage("user.welcome", new Object[]{"Rama"} , Locale.US);
}

}

这是我的文件夹结构:

enter image description here

messages_en_US.properties 只包含一行:

user.welcome=Welcome {0}

这里是使用的xml配置:

<bean name="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>resourcebundles/messages</value>
</property>
</bean>

这是我得到的错误:

WARNING: ResourceBundle [resourcebundles/messages] not found for MessageSource: Can't find bundle for base name resourcebundles/messages, locale en_US
Exception in thread "main" org.springframework.context.NoSuchMessageException: No message found under code 'user.welcome' for locale 'en_US'.

但是,如果我将资源包直接移动到资源文件夹下,它就可以正常工作。在这种情况下,这是我正在使用的 xml 配置:

<bean name="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>

如果我必须使用 ResourceBundleMessageSource,我应该将我的资源包直接放在资源下吗?如果我只能将它保存在指定的文件夹中,还有其他方法可以让这个工作吗?

谢谢!

最佳答案

男孩,也许你可以改变xml配置如下:

使用

org.springframework.context.support.ReloadableResourceBundleMessageSource

而不是

org.springframework.context.support.ResourceBundleMessageSource

所有配置如下:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:resourcebundles/messages" />
<property name="useCodeAsDefaultMessage" value="true" />
</bean>

关于spring - 放置在文件夹中时找不到 MessageSource 的 ResourceBundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11150869/

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