gpt4 book ai didi

java - Spring MessageSource 没有从属性文件中获取消息

转载 作者:行者123 更新时间:2023-11-30 10:59:31 25 4
gpt4 key购买 nike

我做了一些谷歌搜索,发现我的问题出现了很多次,但我已经尝试了所有建议的解决方案,但它仍然不适合我

我一直收到这个异常:

org.springframework.context.NoSuchMessageException: No message found under code 'error.null.firstname' for locale 'en'.

这是我的设置在我的 dispatcher-servlet.xml 文件中我有:

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

我直接在src/main/resources/下有一个属性文件(error_en.properties)它确实包含以下行:

error.null.firstname=Firstname cannot be null

在我的代码中,我正在尝试:

    @Autowired
private MessageSource messageSource;
...
System.out.println(messageSource.getMessage("error.null.firstname", null, Locale.ENGLISH));

但上面没有工作,给我上面提到的异常

我试过在 value 属性中为“value”加上“classpath:”前缀,但这对我不起作用。我已确保文件名“error”与值属性匹配,因为我知道“_en”将由 Spring Framework 处理。

我看不到我错过了什么?

最佳答案

经过几天的试验/调试 - 终于弄清楚了问题所在。

我 Autowiring MessageSource 的类实际上属于不同的上下文。

我的 messageSource bean 定义是在我的 dispatcher-Servlet.xml 上下文文件中声明的,因为我正在开发一个 web 应用程序。

而我的业务类是在 application-context.xml 中声明的,所以它找不到 MessageSource。

在我将所有内容移动到 dispatcher-Servlet.xml 文件后,它就可以工作了。可能不是一个优雅的解决方案,但它解决了我的问题。

感谢之前的所有帮助

关于java - Spring MessageSource 没有从属性文件中获取消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31892294/

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