Я работаю с Spring (4.0.5) и Hibernate Validator (5.1.2.Final)конфигурации для кодирования Hibernate Validator сообщения об ошибках настроены через Spring Framework
Я уже работал сообщения об ошибках с помощью файла .properties , он тоже работает примерно i18n.
- Это в (JUnit) среды автономный и тестирования, на данный момент. Я не хочу включать веб-среду, чтобы все было просто.
У меня есть следующий:
Для ValidationMessages_es_PE.properties файла (на испанском языке)
person.salary.digits=Dato invalido '${validatedValue}', máximo tamaño no decimal permitido es {integer}, máximo tamaño decimal permitido es {fraction}
О инфраструктуре
@Configuration
public class ValidatorConfiguration {
@Bean
public ResourceBundleMessageSource resourceBundleMessageSource(){
ResourceBundleMessageSource resourceBundleMessageSource = new ResourceBundleMessageSource();
resourceBundleMessageSource.setDefaultEncoding("UTF-8");
resourceBundleMessageSource.setBasenames("com.manuel.jordan.validation.messages.ValidationMessages");
return resourceBundleMessageSource;
}
@Bean
public LocalValidatorFactoryBean localValidatorFactoryBean(){
LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
localValidatorFactoryBean.setValidationMessageSource(resourceBundleMessageSource());
MessageSourceResourceBundleLocator messageSourceResourceBundleLocator = new MessageSourceResourceBundleLocator(resourceBundleMessageSource());
ResourceBundleMessageInterpolator resourceBundleMessageInterpolator = new ResourceBundleMessageInterpolator(messageSourceResourceBundleLocator);
localValidatorFactoryBean.setMessageInterpolator(resourceBundleMessageInterpolator);
return localValidatorFactoryBean;
}
}
Наблюдайте У меня есть setDefaultEncoding("UTF-8")
Тест класс
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=ValidatorConfiguration.class)
public class InvalidPersonValidation03Test {
private static final Logger logger = LoggerFactory.getLogger(InvalidPersonValidation03Test.class);
@Autowired
private LocalValidatorFactoryBean validator;
public InvalidPersonValidation03Test(){
LocaleContextHolder.setLocale(new Locale("es","PE"));
}
@Test
public void testInvalidNullId(){
...
Часть продукции является следующие
- >>>testInvalidFractionSalary
- ConstraintViolationImpl{interpolatedMessage='Dato invalido '1578.100', m�ximo tama�o no decimal permitido es 4, m�ximo tama�o decimal permitido es 2', propertyPath=salary, rootBeanClass=class com.manuel.jordan.domain.PersonValidation03, messageTemplate='{person.salary.digits}'}
- ConstraintViolationImpl{interpolatedMessage='Dato invalido '1578.100', m�ximo tama�o no decimal permitido es 4, m�ximo tama�o decimal permitido es 2', propertyPath=salary, rootBeanClass=class com.manuel.jordan.domain.PersonValidation03, messageTemplate='{person.salary.digits}'}
Символы ñ
и á
не показывая, как ожидается,
Мой IDE уже
Preferences -> Workspace -> Text file encoding
с UTF-8
Какая дополнительная недостающая конфигурация мне нужна?
Попробуйте установить на сервер '-Dfile.encoding = utf-8'. –
Спасибо, где я должен применить это? Я попытался использовать 'JUnit-> Run Configurations -> Arguments' в' VM arguments' или 'Program arguments' и такие же плохие результаты. –