Springboot+validationの使用と中国語のヒント情報の文字化けしの問題

5485 ワード

Springboot+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;
    }
}

もし間違いがあったら、私に連絡して直してください.