我試圖以編程方式配置Spring MVC
而不是xml文件。幾乎所有的工作都很好,但我在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");
}
}
是工作,但它沒有顯示從messages.properties
消息中的應用程序,它位於/WEB-INF/classes/messages.properties
。如果我使用xml文件,它也可以正常工作。
在JSP我有以下行±
<fmt:message key="heading"/>
它顯示像在瀏覽器???heading???
。
我不知道它是否是路徑問題,或者我需要添加更多參數。
嘗試resource.setBasename(「classpath:messages」); – fmucar 2012-01-03 17:59:00
謝謝,但它不起作用。我有點沮喪... – Quaiks 2012-01-03 22:36:50
然後我建議你在ResourceBundleMessageSource中放置一個斷點來查看它試圖找到文件的位置。 – fmucar 2012-01-04 09:25:12