Play Framework 2.3 + JSR 303 validation.

 
 
 
Сообщения:13
Есть приложение, написанное на этом самом фреймворке. Плюс еще прикручен Spring для каких то целей. Нужно сделать валидацию данных вида
@NotNull
    @NotEmpty(message = "{mayNotBeEmpty}")
    private String name;

Я не понимаю, как оно все в нем работает, но валидация заработала сама подключением библиотек в зависимости. А вот локализированные сообщения не виводит. Выводит {mayNotBeEmpty}. Размещение этого ключа в файлах локализации для фреймворка по умолчанию результата не дали. Пробовал что-то пихать в спринговые конфиги, вроде

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <value>classpath:/conf/validation-messages</value>
            </list>
        </property>
        <property name="defaultEncoding" value="UTF-8"/>
    </bean>


но не сильно помогло. К тому же валидатора что-то объявленного там не видно.

Что делать? Кто виноват? И какие буквы где писать, чтобы это чудо заработало? Глубоких познаний этих фреймворков у меня нету, а решение нужно сейчас. И еще не ясно, как узнать какие ключи для стандартных сообщений, например когда вместо числа вводятся символы. Выдает просто Invalid Value. А как его локализировать?
Изменен:11 авг 2014 14:05
 
 
Сообщения:547
Насколько помню, по умолчанию, сообщения ищутся в корне classpath в файлах ValidationMessages_ru_RU.properties, ValidationMessages_ru.properties, ValidationMessages.properties (Это конечно можно перенастроить..)

Чтобы понять какие ключи использовать для локализации, можно зайти в саму аннотацию и посмотреть на дефолтное значение для поля messsages. Например, для @NotNull оно выглядит так:

String message() default "{javax.validation.constraints.NotNull.message}";


соответственно, ключ будет javax.validation.constraints.NotNull.message
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет