我正在尝试从 Controller 获取消息区域设置,但我收到此错误:
org.springframework.web.util.NestedServletException
: 请求处理失败;嵌套异常是:在语言环境org.springframework.context.NoSuchMessageException
的代码下找不到消息。'error.alias'
'es_ES'
在我的控制器中:
ApplicationContext context = MyContext.getApplicationContext();
List errors = null;
// Validar parametros
if (!Filter.onlyLetters(alias)) {
errors.add(context.getMessage("error.alias", null, Locale.getDefault()));
}
MyContext.getApplicationContext()
MyApplicationContextAware
从该工具获取弹簧上下文ApplicationContextAware
。
public class MyContext {
private static ApplicationContext context;
public static void setApplicationContext(ApplicationContext applicationContext) {
context = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return context;
}
}
public class MyApplicationContextAware implements ApplicationContextAware {
public void setApplicationContext(ApplicationContext ctx) throws BeansException {
MyContext.setApplicationContext(ctx);
}
}
<bean id="myApplicationContextAware" class="...MyApplicationContextAware" />
“error.alias”存在于messages.properties 和messages_es_ES.properties 中。
/WEB-INF/classes/messages.properties
/WEB-INF/classes/messages_es_ES.properties
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>