Springboot+validationの使用と中国語のヒント情報の文字化けしの問題
5485 ワード
Springboot+validationの使用と中国語のヒント情報の文字化けしの問題
1.Hibernate Validationの使い方
導入するmaven依存性:
検証が必要なjava bean:
デフォルトのValidationMessages.properties:
2.中国語の文字化けしの問題
得られた検証結果が中国語で文字化けしてしまうことがあるのは、propertiesファイルを読み取る符号化方式がutf-8ではないためであり、この問題を解決するにはvalidationが読み出しプロファイルを検証する符号化フォーマットを設定する必要がある
もし間違いがあったら、私に連絡して直してください.
1.Hibernate Validationの使い方
導入するmaven依存性:
javax.validation
validation-api
org.hibernate.validator
hibernate-validator
検証が必要なjava bean:
@Data
@AllArgsConstructor
public class ValidationError {
@NotBlank(message = "{key.notBlank}")
private String key;
private String message;
}
デフォルトのValidationMessages.properties:
key.notBlank=key
2.中国語の文字化けしの問題
得られた検証結果が中国語で文字化けしてしまうことがあるのは、propertiesファイルを読み取る符号化方式がutf-8ではないためであり、この問題を解決するにはvalidationが読み出しプロファイルを検証する符号化フォーマットを設定する必要がある
@Configuration
public class ValidationConfig {
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource source = new ResourceBundleMessageSource();
source.setDefaultEncoding("utf-8");//
source.setCacheMillis(-1);// ,-1
source.setBasename("ValidationMessages");// , Messages, Messages.properties/Message_en.properties...
return source;
}
@Bean
public Validator validator() {
LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean();
MessageInterpolatorFactory interpolatorFactory = new MessageInterpolatorFactory();
factoryBean.setMessageInterpolator(interpolatorFactory.getObject());
factoryBean.setValidationMessageSource(messageSource());
return factoryBean;
}
}
もし間違いがあったら、私に連絡して直してください.