你打算如何使用該資源?在你的例子中,你不用做任何事情。
但是,從它的名稱看來,您似乎正試圖加載國際化/本地化消息 - 爲此您可以輸入MessageSource
。
如果你定義了一些豆子(可能在一個單獨的messages-context.xml
)與此類似:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>WEB-INF/messages/messages</value>
</list>
</property>
</bean>
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="defaultLocale" value="en_GB" />
</bean>
Spring將載入您的應用程序啓動時,你的資源包。然後,您可以自動裝配的MessageSource
到控制器中,並用它來獲得本地化的消息:
@Controller
public class SomeController {
@Autowired
private MessageSource messageSource;
@RequestMapping("/texts")
public ModelAndView texts(Locale locale) {
String localisedMessage = messageSource.getMessage("my.message.key", new Object[]{}, locale)
/* do something with localised message here */
return new ModelAndView("texts");
}
}
NB。將Locale
作爲參數添加到您的控制器方法中會導致Spring神奇地將它連接 - 這就是您所需要做的。
您也可以使用,然後訪問消息的資源包在您的JSP:
<spring:message code="my.message.key" />
這是我的首選方式做到這一點 - 只是看起來更清潔。
我知道的MessageSource。 'messages_en.properties'只是一個例子。我改變了這個以避免錯誤。 – marioosh
啊,好的。那麼我想這取決於你要使用該文件。如果它像.properties文件或L18n消息那樣相當標準,那麼很可能會有一個特定的整潔方式(如messageSource),但是如果您以某種定製的特定方式使用這些文件,我看不到與你在做什麼有關的問題。 – Russell