我试图以Spring MVC编程方式而不是xml文件进行配置.几乎一切都运转良好,但我在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;
}
}
Run Code Online (Sandbox Code Playgroud)
我的初始化程序如下:
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");
}
}
Run Code Online (Sandbox Code Playgroud)
该应用程序的工作,但它没有显示从消息messages.properties是位于/WEB-INF/classes/messages.properties.如果我使用xml文件,它也可以正常工作.
在JSP中我有以下几行±
<fmt:message key="heading"/>
Run Code Online (Sandbox Code Playgroud)
它就像???heading???在浏览器中一样显示.
我不知道路径是否有问题,或者我需要提出更多的参数.
最后它正在工作!问题出在方法名称中.如果要创建具有id的bean,则bean的id是方法的名称.所以我已经将方法(configureResourceBundleMessageSource())的名称更改为messageSource().
| 归档时间: |
|
| 查看次数: |
5403 次 |
| 最近记录: |