Spring Boot Validation は、JSR-380 (別名 Bean Validation 2.0、Jakarta EE および JavaSE の一部) アノテーションをサポートしています。検証エラー メッセージは、検証アノテーションの message 属性を通じて設定でき、各検証アノテーションにはデフォルトのメッセージがあります。たとえば、@NotBlank
の message 属性値は次のように設定されます:
message = "{... }" フォームでは国際化属性の名前を指定します。この属性は、ロケールに応じて対応する値に置き換えられます。これらの国際化属性の定義については、
の org.hibernate.validator を参照してください。 hibernate-validator
.ValidationMessages.properties および一連の国際プロパティ定義:
message の設定に加えて、 ="{propName}" 国際プロパティを読み取るには、値 message="特定のプロンプト情報" を直接設定することもできます。メッセージを明示的に設定しない場合は、前述の
org.hibernate を使用します。 validator.ValidationMessages.properties のデフォルト構成。
resources/ValidationMessages.properties 一連のファイル内の国際コードの読み取りのみをサポートします。国際化属性、および中国語を正しく表示するには、ASCII トランスコーディングが必要です
"{propName}" を読み取ることができません:
import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.validation.Validator; import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * Spring Web验证器自定义国际化文件配置<br/> * 注:适用于Spring Boot 2.5.* * * @author luohq * @date 2022-05-21 */ @Configuration public class WebValidationConfig implements WebMvcConfigurer { /** * 国际化消息源 */ private MessageSource messageSource; public WebValidationConfig(MessageSource messageSource) { //注入Spring Boot国际化消息源(需通过spring.messages明确指定) this.messageSource = messageSource; } /** * 使用自定义LocalValidatorFactoryBean, * 设置Spring国际化消息源 */ @Bean @Override public Validator getValidator() { LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean(); //仅兼容Spring Boot spring.messages设置的国际化文件和原hibernate-validator的国际化文件 //不支持resource/ValidationMessages.properties系列 bean.setValidationMessageSource(this.messageSource); return bean; } }
注:
#実際に Spring Boot 2.6.x バージョンをテストし、アノテーションを確認します message="{propName}"
:ValidationMessages.properties (中国語は ASCII トランスコーディングが必要)、
Spring Boot 2.6 Spring Boot Validation と MessageSource の統合に関する、具体的な実装の詳細リリース GitHub Pull Request #17530 に記載されています:
以上がSpringBoot Validation プロンプト情報の国際化を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。