Во-первых, я новичок в Vaadin 7. Я только что попробовал демо-версию vaadin, когда обнаружил BeanFieldGroup.class. Как я видел, этот класс привязал поле к свойству bean. В компоненте свойства аннотируются аннотациями ограничений проверки (JSR 303). В этом случае мой pom.xml включают спящий режим валидатор зависимость:Проверка ваадин-бина с помощью Hibernate-валидатора с UTF-8
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.0.CR1</version>
</dependency>
я сделал ValidationMessage.properties файл и поместить туда некоторые сообщения, (с венгерскими символов) и он был сохранен формат UTF-8, например:
validation.NotBlank=Árvíztűrő tükörfúrgép
А вот аннотированный свойство компонента:
@NotNull(message = "{validation.NotBlank}")
private String name = null;
Я могу видеть, когда я изменить значение поля NULL, Vaadin показать мне мое предыдущее ограничение ошибки Сообщ e, но с неправильным кодированием символов.
В другой стороны - без Vaadin, но весна, я могу использовать следующую простую формулу где кодирование символов Уместно меня (как вы можете видеть, я использую Spring ReloadableResourceBundleMessageSource):
private MessageSource MessageSource(){
ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource = new ReloadableResourceBundleMessageSource();
reloadableResourceBundleMessageSource.setCacheSeconds(5000);
reloadableResourceBundleMessageSource.setFallbackToSystemLocale(false);
reloadableResourceBundleMessageSource.setDefaultEncoding("UTF-8");
Properties properties = new Properties();
properties.setProperty("fileEncodings", "UTF-8");
reloadableResourceBundleMessageSource.setFileEncodings(properties);
reloadableResourceBundleMessageSource.setBasename("classpath:/locales/messages");
return reloadableResourceBundleMessageSource;
}
@Bean
public LocalValidatorFactoryBean validator(){
LocalValidatorFactoryBean factory = new LocalValidatorFactoryBean();
factory.setValidationMessageSource(MessageSource());
return factory;
}
Мой вопрос: Может ли кто-нибудь сказать мне правильное решение, как настроить hibernate validator или Vaadin для чтения файлов свойств с кодировкой UTF-8?
Hi! Спасибо вашему ответу. Я вас понимаю, но сейчас я не совсем понимаю, как получить экземпляр ValidatorFactory от BeanFieldGroup. Не могли бы вы показать короткий пример? –
Я обновил свой ответ на основе вашего вопроса. –
Я предпочел бы выполнить конфигурацию с помощью дескриптора validation.xml Bean Validation вместо разведывательных хаков.Это настраивает фабрику валидатора по умолчанию, которая также должна быть выбрана Ваадином. – Gunnar