הודעת מקור אימות מותאמת אישית באתחול האביב

1. סקירה כללית

MessageSource היא תכונה עוצמתית הזמינה ביישומי אביב. זה עוזר למפתחי יישומים להתמודד עם תרחישים מורכבים שונים עם כתיבת קוד נוסף הרבה, כגון תצורה ספציפית לסביבה, בינלאומי או ערכים הניתנים להגדרה.

תרחיש נוסף יכול להיות שינוי הודעות האימות המוגדרות כברירת מחדל להודעות ידידותיות / מותאמות אישית יותר.

במדריך זה, נראה כיצד להגדיר ולנהל אימות מותאם אישית MessageSource ביישום באמצעות Spring Boot.

2. תלות Maven

נתחיל בהוספת התלות הנחוצה ב- Maven:

 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-validation 

תוכל למצוא את הגרסאות העדכניות ביותר של ספריות אלה ב- Maven Central.

3. דוגמה להודעת אימות מותאם אישית

הבה נבחן תרחיש בו עלינו לפתח יישום התומך במספר שפות. אם המשתמש לא מספק את הפרטים הנכונים כקלט, ברצוננו להציג הודעות שגיאה בהתאם לאזור המשתמש.

בואו ניקח דוגמא לשעועית טופס התחברות:

כיתת ציבור בכניסה צורה {@NotEmpty (message = "{email.notempty}") @Email דוא"ל מחרוזת פרטי; סיסמת מחרוזת פרטית @NotNull; // גטר סטרים סטרים}

כאן הוספנו אילוצי אימות המאמתים אם דוא"ל אינו מסופק כלל, או מסופק, אך אינו עוקב אחר סגנון כתובת הדוא"ל הרגילה.

כדי להציג הודעה מותאמת אישית וספציפית למיקום, אנו יכולים לספק מציין מיקום כאמור עבור ה- @לא ריק ביאור.

ה דוא"ל. לא מנע המאפיין ייפתר מקבצי מאפיינים על ידי MessageSource תְצוּרָה.

4. הגדרת ה MessageSource אפונה

הקשר יישום מאציל את רזולוציית ההודעה לשעועית עם השם המדויק messageSource.

ReloadableResourceBundleMessageSource הוא הנפוץ ביותר MessageSource יישום הפותר הודעות מחבילות משאבים עבור אזורים שונים:

@Bean MessageSource ציבורי messageSource () {ReloadableResourceBundleMessageSource messageSource = חדש ReloadableResourceBundleMessageSource (); messageSource.setBasename ("classpath: messages"); messageSource.setDefaultEncoding ("UTF-8"); return messageSource; }

כאן, חשוב לספק את שם בסיס כשמות קבצים ספציפיים למיקום ייפתרו על בסיס השם שסופק.

5. הגדרה LocalValidatorFactoryBean

כדי להשתמש בהודעות שם מותאמות אישית בקובץ מאפיינים כמו שאנחנו צריכים להגדיר a LocalValidatorFactoryBean ולרשום את הודעה מקור:

@Bean LocalValidatorFactory ציבורי Bean getValidator () {LocalValidatorFactoryBean שעועית = חדש LocalValidatorFactoryBean (); bean.setValidationMessageSource (messageSource ()); שעועית להחזיר; }

עם זאת, שים לב שאם כבר הרחבנו את WebMvcConfigurerAdapter, כדי להימנע מהתעלמות מאמת המותאם אישית, נצטרך להגדיר את המאמת על ידי עקיפת ה- getValidator () שיטה מכיתת ההורים.

כעת אנו יכולים להגדיר הודעת מאפיין כמו:

email.notempty = ”

במקום

“Javax.validation.constraints.NotEmpty.message =”

6. הגדרת קבצי נכסים

השלב האחרון הוא ליצור קובץ מאפיינים ב- src / main / resources ספריה עם השם המופיע ב- שם בסיס בשלב 4:

# messages.properties email.notempty = אנא הזן מזהה דוא"ל חוקי.

כאן אנו יכולים לנצל את הבינלאומיות יחד עם זה. נניח שאנחנו רוצים להציג הודעות למשתמש צרפתי בשפתו.

במקרה זה, עלינו להוסיף קובץ מאפיין נוסף עם השם הודעות_פר. נכסים באותו מיקום (אין צורך בשינויים קוד כלל):

# messages_fr.properties email.notempty = Veuillez fournir unidentifying de messagerie valide.

7. מסקנה

במאמר זה סקרנו כיצד ניתן לשנות את הודעות האימות המוגדרות כברירת מחדל מבלי לשנות את הקוד אם התצורה נעשית כראוי מראש.

אנו יכולים גם למנף את התמיכה של בינלאומיות יחד עם זה כדי להפוך את היישום לידידותי יותר למשתמש.

כמו תמיד, קוד המקור המלא זמין ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found