在代码“ user.title”下未找到语言环境“ en_US”的消息

时间:2019-09-18 05:22:00

标签: java spring jsp

我正在尝试将以下代码添加到现有的jsp页面中,但是我收到“在代码'trace'下找不到针对语言环境'en_US'的消息。

<td valign="top"><spring:message code="trace" /></td>
<td valign="top"><form:input type="textbox" id="noOfTrace"
class="textbox" path="branch.noOfTrace"
value="${installation.getBranch().getNoOfTrace()}" />
</td>

有人可以帮忙吗?另外我也不知道此代码=“ trace”将在何处引用。

2 个答案:

答案 0 :(得分:0)

您是否尝试了解ResourceBundle。对于支持国际化的任何应用程序,它都需要具有解决不同语言环境的文本消息的功能。这些来自称为资源包的属性文件。您将为每个语言环境有一个单独的属性文件。将这些属性文件放在class-path中,并在spring xml中配置它们的名称和位置。像下面这样。因此,messages.properties将包含带有键名的键值对,您将使用它们来引用该语言环境中的文本。

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

在您的情况下,“ trace”是属性文件中的键,它试图使用“ spring:messages”标签来查找要打印的值。检查以下内容:

  1. 请检查您的spring config xml以查看正确配置的resourcebundle。

2。查看其引用的属性文件以及其是否存在于类路径中。

3。检查它是否具有名为“ trace”的键

您可以在线阅读有关如何使用spring resourcebundle的信息,您将获得更多的想法。

答案 1 :(得分:0)

您可以尝试通过配置类来配置国际化。

必须定义消息存储的位置。

@Bean
public ResourceBundleMessageSource messageSource() {
    ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
    messageSource.setBasename("messages");

    return messageSource;
}

还尝试定义默认语言环境。您可以像下面这样

@Bean
    public LocaleResolver localeResolver() {
        AcceptHeaderLocaleResolver localeResolver = new AcceptHeaderLocaleResolver();
        localeResolver.setDefaultLocale(Locale.US);

        return localeResolver;
    }

确保带有您要查找的密钥的消息在“消息”文件中