Model, ModelMap ו- ModelAndView באביב MVC

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

במאמר זה נבחן את השימוש בליבה org.springframework.ui.Model, org.springframework.ui.ModelMap ו org.springframework.web.servlet.ModelAndView מסופק על ידי אביב MVC.

2. תלות Maven

נתחיל עם ה- אביב-הקשר תלות שלנו pom.xml קוֹבֶץ:

 org.springframework spring-context 5.2.2.RELEASE 

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

בשביל ה ModelAndView, ה קפיץ-רשת נדרשת תלות:

 org.springframework spring-web 5.2.2.RELEASE 

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

ואם אנו משתמשים ב- Thymeleaf כהשקפה שלנו, עלינו להוסיף תלות זו ל- pom.xml:

 org.thymeleaf thymeleaf-spring5 3.0.11. שחרור 

הגרסה האחרונה של תלות ב- Thymeleaf נמצאת כאן.

3. דֶגֶם

נתחיל בתפיסה הבסיסית ביותר כאן - ה- דֶגֶם.

במילים פשוטות, המודל יכול לספק תכונות המשמשות לעיבוד תצוגות.

כדי לספק תצוגה עם נתונים שמישים, אנו פשוט מוסיפים נתונים אלה אליהם דֶגֶם לְהִתְנַגֵד. בנוסף, ניתן למזג מפות עם תכונות דֶגֶם מקרים:

@GetMapping ("/ showViewPage") ציבורי מחרוזת passParametersWithModel (מודל מודל) {Map map = HashMap חדש (); map.put ("קפיץ", "mvc"); model.addAttribute ("הודעה", "Baeldung"); model.mergeAttributes (מפה); להחזיר "viewPage"; }

4. ModelMap

בדיוק כמו ה- דֶגֶם ממשק מעל, ModelMap משמש גם להעברת ערכים להצגת תצוגה.

היתרון של ModelMap האם זה נותן לנו את היכולת להעביר אוסף ערכים ולהתייחס לערכים אלה כאילו היו בתוך a מַפָּה:

@GetMapping ("/ printViewPage") ציבורי מחרוזת passParametersWithModelMap (מפת ModelMap) {map.addAttribute ("welcomeMessage", "welcome"); map.addAttribute ("הודעה", "Baeldung"); להחזיר "viewPage"; }

5. ModelAndView

הממשק הסופי להעברת ערכים לתצוגה הוא ModelAndView.

ממשק זה מאפשר לנו להעביר את כל המידע הנדרש על ידי Spring MVC בתמורה אחת:

@GetMapping ("/ goToViewPage") פומבי ModelAndView passParametersWithModelAndView () {ModelAndView modelAndView = חדש ModelAndView ("viewPage"); modelAndView.addObject ("הודעה", "באלדונג"); modelAndView להחזיר; } 

6. הנוף

כל הנתונים, שאנו מציבים בתוך מודלים אלה, משמשים תצוגה - באופן כללי, תצוגה תבניתית לעיבוד דף האינטרנט.

אם יש לנו קובץ תבנית של Thymeleaf הממוקד על ידי שיטות הבקר שלנו כראייתם. ניתן יהיה לגשת לפרמטר המועבר דרך המודל מתוך קוד ה- HTML הטמני:

   כותרת יישום אינטרנט. פרמטר עבר: th: text = "$ {message}" 

הפרמטר שהועבר כאן משמש דרך התחביר $ {message}, הידוע כמציין מיקום. מנוע התבנית של Thymeleaf יחליף את מציין המיקום הזה בערך ממשי ממאפיין באותו שם שהועבר דרך המודל.

7. מסקנה

במדריך מהיר זה דנו בשלושה מושגי ליבה באביב MVC - ה- דֶגֶם, ה ModelMap וה ModelAndView. הסתכלנו גם על דוגמאות כיצד התצוגה יכולה לעשות שימוש בערכים אלה.

כמו תמיד, ניתן למצוא את היישום של כל הדוגמאות וקטעי הקוד באתר Github.