我正在尝试将以下代码添加到现有的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”将在何处引用。
答案 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”标签来查找要打印的值。检查以下内容:
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;
}
确保带有您要查找的密钥的消息在“消息”文件中