Что не так с моей настройкой Spring MessageSource? - PullRequest
1 голос
/ 09 июня 2011

Я пытаюсь настроить ReloadableResourceBundleMessageSource для использования в моих JSP и контроллере. Вот кусочки у меня есть. Ключ сообщения печатается на экран в моем 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>

Ответы [ 3 ]

4 голосов
/ 09 июня 2011

Да, это тоже меня долго сбивало с толку.Идентификатор компонента должен называться messageSource.

1 голос
/ 27 мая 2014

Я отправляю свой ответ для java-конфигурации , потому что столкнулся с той же проблемой, когда переключался с xml на java-приложение для конфигурации, и это было полной болью в a ** to выяснить, почему это не работает. (Оказывается для меня, та же проблема, на которую указал @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;
    }
0 голосов
/ 21 ноября 2011

А также не забудьте объявить приложение messageSource широким, а не в Spring-компонентах сервлета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...