Controller からメッセージロケールを取得しようとしていますが、次のエラーが発生します。
org.springframework.web.util.NestedServletException
: リクエストの処理に失敗しました。ネストされた例外: localeorg.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>