Spring mvc 类路径
Spring mvc classpath
在我的 spring mvc 网络应用程序中,我将 message_en.properties 文件保存在
下
|-src/main/java
+---src
| +---main
| | +---java
| | +---resources
| | | +---i18n
| message_en.properties
| message_fr.properties
Bean 声明:
@Bean
public ReloadableResourceBundleMessageSource validationMessageSource() {
ReloadableResourceBundleMessageSource bms = new ReloadableResourceBundleMessageSource();
bms.setBasename("classpath*:i18n/message");
bms.setDefaultEncoding("UTF-8");
return bms;
}
@Bean
public CookieLocaleResolver localeResolver() {
CookieLocaleResolver localeResolver = new CookieLocaleResolver();
localeResolver.setDefaultLocale(Locale.ENGLISH);
localeResolver.setCookieName("my-locale-cookie");
localeResolver.setCookieMaxAge(3600);
return localeResolver;
}
@Bean
public LocaleChangeInterceptor localeInterceptor() {
LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
interceptor.setParamName("lang");
return interceptor;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeInterceptor());
}
在控制台中我仍然收到消息:
DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [classpath*:i18n/message] - neither plain properties nor XML
16:13:24.432 [http-nio-8080-exec-3] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [classpath*:i18n/message_fr] - neither plain properties nor XML
16:13:24.432 [http-nio-8080-exec-3] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [classpath*:i18n/message_fr_FR] - neither plain properties nor XML
16:13:24.432 [http-nio-8080-exec-3] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [classpath*:i18n/message_en] - neither plain properties nor XML
请问如何在 validationMessageSource Bean 中设置属性 Basename。
上面的代码有两个问题
一个。第一期是
@Bean
public ReloadableResourceBundleMessageSource validationMessageSource()
签名应如下所示(任选其一)
@Bean(name = "messageSource") <--- Name of the Bean should be messageSource
public ReloadableResourceBundleMessageSource validationMessageSource() {
}
或者应该像下面这样,方法名称为 messageSource 而不是像上面那样将 Bean 名称设为 "messageSource"
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
}
b。第二期是
bms.setBasename("classpath*:i18n/message");
应该是bms.setBasename("classpath:i18n/message");
<---类路径中不需要*
在我的 spring mvc 网络应用程序中,我将 message_en.properties 文件保存在
下|-src/main/java
+---src
| +---main
| | +---java
| | +---resources
| | | +---i18n
| message_en.properties
| message_fr.properties
Bean 声明:
@Bean
public ReloadableResourceBundleMessageSource validationMessageSource() {
ReloadableResourceBundleMessageSource bms = new ReloadableResourceBundleMessageSource();
bms.setBasename("classpath*:i18n/message");
bms.setDefaultEncoding("UTF-8");
return bms;
}
@Bean
public CookieLocaleResolver localeResolver() {
CookieLocaleResolver localeResolver = new CookieLocaleResolver();
localeResolver.setDefaultLocale(Locale.ENGLISH);
localeResolver.setCookieName("my-locale-cookie");
localeResolver.setCookieMaxAge(3600);
return localeResolver;
}
@Bean
public LocaleChangeInterceptor localeInterceptor() {
LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
interceptor.setParamName("lang");
return interceptor;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeInterceptor());
}
在控制台中我仍然收到消息:
DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [classpath*:i18n/message] - neither plain properties nor XML
16:13:24.432 [http-nio-8080-exec-3] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [classpath*:i18n/message_fr] - neither plain properties nor XML
16:13:24.432 [http-nio-8080-exec-3] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [classpath*:i18n/message_fr_FR] - neither plain properties nor XML
16:13:24.432 [http-nio-8080-exec-3] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [classpath*:i18n/message_en] - neither plain properties nor XML
请问如何在 validationMessageSource Bean 中设置属性 Basename。
上面的代码有两个问题
一个。第一期是
@Bean
public ReloadableResourceBundleMessageSource validationMessageSource()
签名应如下所示(任选其一)
@Bean(name = "messageSource") <--- Name of the Bean should be messageSource
public ReloadableResourceBundleMessageSource validationMessageSource() {
}
或者应该像下面这样,方法名称为 messageSource 而不是像上面那样将 Bean 名称设为 "messageSource"
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
}
b。第二期是
bms.setBasename("classpath*:i18n/message");
应该是bms.setBasename("classpath:i18n/message");
<---类路径中不需要*