我正在尝试设置一个ReloadableResourceBundleMessageSource以在我的JSP和Controller中使用。这是我的作品。消息键正在我的jsp中打印到屏幕。我错过了什么?
弹簧servlet.xml中
<bean id="messages" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<value>/WEB-INF/messages/login</value>
</property>
</bean>
login_en.properties
login.title=Welcome to the login page.
针对home.jsp
<body>
<spring:message code="login.title" text="login.title"></spring:message>
</body>
答案 0 :(得分:4)
答案 1 :(得分:1)
我发布了基于java的配置的答案,因为当我从xml切换到基于java的配置应用程序时遇到了同样的问题,这是一个完全痛苦的问题**弄清楚它为什么不起作用。 (事实证明,@ jiggy指出的是同样的问题......你不知道......)
@Bean(name = "validator")
public LocalValidatorFactoryBean getLocalValidatorFactoryBean() {
final LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
validator.setValidationMessageSource(this.getMessageSource());
validator.afterPropertiesSet();
return validator;
}
@Bean(name = "messageSource") // --> !!! This is what is so important!!!
public MessageSource getMessageSource() {
final ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); // easily swapped out with "ReloadableResourceBundleMessageSource", my app just doesn't have any necessary reloadable message requirements.
messageSource.setBasenames(ERROR_MESSAGE_DIRECTORY); // static String for a direct path to your "ValidationMessages.properties" file or whatever name you've given it.
return messageSource;
}
答案 2 :(得分:0)
并且不要忘记将messageSource应用程序声明为广泛而不是servlet spring beans。