xmlファイルの代わりにSpring MVC
をプログラムで設定しようとしています。ほとんどすべてが正常に動作していますが、ResourceBundleMessageSource
宣言に問題があります。ResourceBundleMessageSourceのプログラムによる設定
マイコンフィギュレーションクラス次のようになります。
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "xx.xx.xx.spring.controller")
public class MvcConfig {
@Bean
public ResourceBundleMessageSource configureResourceBundleMessageSource() {
ResourceBundleMessageSource resource = new ResourceBundleMessageSource();
resource.setBasename("messages");
return resource;
}
@Bean
public UrlBasedViewResolver configureUrlBasedViewResolver() {
UrlBasedViewResolver resolver = new UrlBasedViewResolver();
resolver.setPrefix("/WEB-INF/jsp/");
resolver.setSuffix(".jsp");
resolver.setViewClass(
org.springframework.web.servlet.view.JstlView.class);
return resolver;
}
}
そして、このように私の初期化子:
public class Initializer implements WebApplicationInitializer {
public void onStartup(ServletContext servletContext)
throws ServletException {
AnnotationConfigWebApplicationContext mvcContext =
new AnnotationConfigWebApplicationContext();
mvcContext.register(MvcConfig.class);
mvcContext.setServletContext(servletContext);
mvcContext.refresh();
ServletRegistration.Dynamic menu = servletContext.addServlet("menu",
new DispatcherServlet(mvcContext));
menu.setLoadOnStartup(1);
menu.addMapping("*.html");
}
}
アプリケーションが動作しているが、それは/WEB-INF/classes/messages.properties
に位置していますmessages.properties
からのメッセージが表示されません。私はxmlファイルを使用する場合、それもうまく動作します。 JSPで
私は
<fmt:message key="heading"/>
±次の行を持っており、それがブラウザに???heading???
のように表示されています。
パスに問題があるかどうかわかりません。または、もっとパラメータを入れる必要があります。
try resource.setBasename( "classpath:messages"); – fmucar
ありがとうございますが動作しません。私はちょっと心配しています... – Quaiks
次に、ResourceBundleMessageSourceにブレークポイントを配置して、ファイルを見つける場所を確認することをお勧めします。 – fmucar