[英]Can't find bundle for base name Warn
ResourceBundle [classpath:/org/springframework/security/messages] not found for MessageSource: Can't find bundle for base name classpath:/org/springframework/security/messages, locale ru 我找不到任何設置國際化的解決方案Java
這就是我的代碼的樣子
public static final Locale defaultLocale = new Locale("ru");
public LocaleConfig() {
}
@Bean
public LocaleResolver localeResolver() {
return new FixedLocaleResolver(defaultLocale);
}
@Bean
@Primary
public MessageSource messageSource() {
ResourceBundleMessageSource rs = new ResourceBundleMessageSource();
rs.setBasenames("classpath:i18n/messages");
rs.setBasenames("classpath:/org/springframework/security/messages");
rs.setDefaultEncoding("UTF-8");
rs.setUseCodeAsDefaultMessage(true);
return rs;
}
@Bean
@Primary
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("lang");
return localeChangeInterceptor;
}
basenames 是相對於 class 路徑的根,你可以不寫,見1.15.1。 使用MessageSource
進行國際化:
<beans> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"> <list> <value>format</value> <value>exceptions</value> <value>windows</value> </list> </property> </bean> </beans>
該示例假定您在類路徑中定義了三個名為
format
、exceptions
和windows
的資源包。 任何解析消息的請求都以 JDK 標准方式處理,通過ResourceBundle
對象解析消息。
您修改后的代碼:
@Bean
@Primary
public MessageSource messageSource() {
ResourceBundleMessageSource rs = new ResourceBundleMessageSource();
rs.setBasenames("org/springframework/security/messages");
rs.setDefaultEncoding("UTF-8");
rs.setUseCodeAsDefaultMessage(true);
return rs;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.