Rumah > Java > javaTutorial > teks badan

Bagaimana untuk mengkonfigurasi SpringBoot Validation pengantarabangsaan maklumat segera

PHPz
Lepaskan: 2023-05-11 11:43:05
ke hadapan
1402 orang telah melayarinya

Spring Boot Validation menyokong JSR-380 (aka. Bean Validation 2.0, sebahagian daripada Jakarta EE dan JavaSE) anotasi Mesej ralat pengesahan boleh ditetapkan melalui atribut mesej anotasi pengesahan dan setiap anotasi pengesahan mempunyai mesej lalai. konfigurasi. , sebagai contoh, nilai atribut mesej @NotBlank ditetapkan seperti yang ditunjukkan di bawah:

Bagaimana untuk mengkonfigurasi SpringBoot Validation pengantarabangsaan maklumat segera

Bentuk lalai message = "{...}" menentukan nama atribut antarabangsa, yang akan digantikan mengikut tempat Nilai yang sepadan, dan takrifan atribut pengantarabangsaan ini boleh didapati dalam hibernate-validator dan satu siri definisi atribut pengantarabangsaan: org.hibernate.validator.ValidationMessages.properties

Bagaimana untuk mengkonfigurasi SpringBoot Validation pengantarabangsaan maklumat segera

Dan dalam proses penggunaan sebenar kami, selain daripada menetapkan bentuk

untuk membaca atribut pengantarabangsaan, anda juga boleh terus menetapkan nilai mesej="maklumat gesaan khusus". Jika mesej tidak ditetapkan secara eksplisit, konfigurasi lalai masuk message="{propName}" yang dinyatakan sebelum ini akan digunakan. org.hibernate.validator.ValidationMessages.properties

Bagaimana untuk mengkonfigurasi SpringBoot Validation pengantarabangsaan maklumat segera

Spring Boot Validation pada mulanya tidak menyokong membaca konfigurasi antarabangsa Spring Boot sendiri (dikonfigurasikan melalui spring.messages), tetapi perlu berada dalam sumber/ValidationMessages Hanya sifat pengantarabangsaan dikonfigurasikan dalam sifat akan berkuat kuasa, dan gabungan Pengesahan dan konfigurasi pengantarabangsaan Spring Boot sendiri hanya akan disokong dalam Spring Boot 2.6+.

Seterusnya, digabungkan dengan versi Spring Boot 2.5 dan 2.6, kami akan memperkenalkan bagaimana Spring Boot Validation menyepadukan maklumat segera pengesahan antarabangsa tersuai.

Spring Boot 2.5.x

Dalam Spring Boot 2.5.x versi, Spring Boot Validation hanya menyokong membaca atribut pengantarabangsaan dalam

siri fail secara lalai dan bahasa Cina perlu Hanya transkod ASCII boleh memaparkan dengan betul resources/ValidationMessages.properties

seperti yang ditunjukkan di bawah:

Bagaimana untuk mengkonfigurasi SpringBoot Validation pengantarabangsaan maklumat segera

Walaupun aplikasi Spring Boot turut mengisytiharkan konfigurasi pengantarabangsaannya sendiri, rangka kerja Spring Boot Validation It tidak boleh dibaca

Contohnya:

Konfigurasi pengantarabangsaan aplikasi Spring Boot itu sendiri adalah seperti yang ditunjukkan di bawah, tetapi dalam tetapan sifat mesej anotasi pengesahan i18n/messages.properties,

ialah boleh dibaca Tidak tersedia: "{propName}"

Bagaimana untuk mengkonfigurasi SpringBoot Validation pengantarabangsaan maklumat segera

Jika anda mahu rangka kerja Pengesahan Spring Boot dan Spring Boot sendiri menggunakan konfigurasi pengantarabangsaan yang sama, anda boleh mengkonfigurasinya dengan cara berikut:

rreee

Nota:

  • Selepas konfigurasi melalui kelas konfigurasi di atas,

  • hanya serasi dengan spring Boot Spring .messages Fail pengantarabangsaan yang ditetapkan dan fail pengantarabangsaan pengesah hibernate asal

  • tidak lagi menyokong siri resource/ValidationMessages.properties

Spring Boot 2.6 .x

Saya melihat melalui arahan Keluaran rangka kerja Spring Boot pada Github dan mendapati ia menyebut dalam v2.6.0-M2 dikeluarkan pada 2021-08-20 bahawa ia menyokong menggunakan MessageSource antarabangsanya sendiri untuk menghuraikan maklumat segera pengesahan, iaitu Dikatakan bahawa Spring Boot 2.6.x dan kemudiannya menyokong atribut mesej anotasi pengesahan untuk merujuk konfigurasi antarabangsa Spring Boot sendiri.

Bagaimana untuk mengkonfigurasi SpringBoot Validation pengantarabangsaan maklumat segera

Ujian sebenar Spring Boot 2.6.x versi, sahkan anotasi

: message="{propName}"

  • boleh dibaca terus melalui

    Atribut dalam konfigurasi pengantarabangsaan yang ditetapkan (Bahasa Cina tidak memerlukan transkod ASCII selepas menetapkan pengekodan UTF-8), spring.messages

  • turut menyokong pembacaan konfigurasi dalam

    /resources (Bahasa Cina memerlukan ASCII transcoding), ValidationMessages.properties

  • dan masih menyokong

    fail antarabangsa yang asal. hibernate-validator

Dan keutamaan baca adalah dari atas ke bawah iaitu yang atas berkuat kuasa dahulu.

Konfigurasi dan penggunaan khusus ditunjukkan dalam rajah di bawah:

Bagaimana untuk mengkonfigurasi SpringBoot Validation pengantarabangsaan maklumat segera

Spring Boot 2.6 Mengenai penyepaduan Spring Boot Validation dan MessageSource, butiran pelaksanaan khusus boleh didapati dalam Release GitHub Pull Request #17530 yang disebutkan:

Bagaimana untuk mengkonfigurasi SpringBoot Validation pengantarabangsaan maklumat segera

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi SpringBoot Validation pengantarabangsaan maklumat segera. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan