מדריך ל- ViewResolver באביב MVC

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

כל מסגרות ה- MVC מספקות דרך לעבוד עם תצוגות.

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

ה ViewResolver ממפה שמות תצוגה לתצוגות בפועל.

ומסגרת האביב מגיעה עם לא מעט פתרונות תצוגה למשל. InternalResourceViewResolver, XmlViewResolver, ResourceBundleViewResolver וכמה אחרים.

זוהי הדרכה פשוטה המציגה כיצד להגדיר את פתרונות התצוגה הנפוצים ביותר כיצד להשתמש במספר רב ViewResolver באותה תצורה.

2. תצורת האינטרנט האביבית

נתחיל בתצורת האינטרנט; נביא את זה עם @EnableWebMvc, @תְצוּרָה ו @ComponentScan:

@EnableWebMvc @Configuration @ComponentScan ("com.baeldung.web") בכיתה ציבורית WebConfig מיישם את WebMvcConfigurer {// כל תצורת האינטרנט תעבור לכאן}

כאן נקבע את פתרון התצוגה שלנו בתצורה.

3. הוסף InternalResourceViewResolver

זֶה ViewResolver מאפשר לנו להגדיר מאפיינים כגון קידומת או סיומת לשם התצוגה כדי ליצור את כתובת ה- URL של דף התצוגה הסופית:

@ שעועית ציבורית ViewResolver internalResourceViewResolver () {שעועית InternalResourceViewResolver = חדש InternalResourceViewResolver (); bean.setViewClass (JstlView.class); bean.setPrefix ("/ WEB-INF / view /"); bean.setSuffix (". jsp"); שעועית להחזיר; }

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

אנחנו רק צריכים פשוט jsp דף, ממוקם ב / WEB-INF / תצוגה התיקיה כפי שהוגדרה בתצורה:

4. הוסף א ResourceBundleViewResolver

כפי שמציע שם הפותר הזה א ResourceBundleViewResolver משתמשת בהגדרות שעועית ב ResourceBundle.

ראשית, אנו מוסיפים את ResourceBundleViewResolver לתצורה הקודמת:

@Bean ציבור ViewResolver resourceBundleViewResolver () {ResourceBundleViewResolver שעועית = ResourceBundleViewResolver חדש (); bean.setBasename ("תצוגות"); שעועית להחזיר; } 

הצרור מוגדר בדרך כלל בקובץ מאפיינים, הממוקם בכיתה. להלן ה- views.קניינים קוֹבֶץ:

מדגם. (class) = org.springframework.web.servlet.view.JstlView sample.url = / WEB-INF / view / sample.jsp

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

5. הוסף XmlViewResolver

יישום זה של ViewResolver מקבל קובץ תצורה שנכתב XML עם אותו הדבר DTD כמו של אביב XML מפעלים שעועית:

@ שעועית ציבורית ViewResolver xmlViewResolver () {XmlViewResolver שעועית = XmlViewResolver חדש (); bean.setLocation (ClassPathResource חדש ("views.xml")); שעועית להחזיר; }

להלן קובץ התצורה, views.xml:

באשר לדוגמאות הקודמות נוכל להשתמש בפשטות שלנו jsp דף שהוגדר קודם לכן.

6. שרשור ViewResolvers והגדר עדיפות הזמנה

אביב MVC תומך גם הוא פתרונות תצוגה מרובים.

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

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

כדי להגדיר את הסדר נוכל להוסיף את שורת הקוד הבאה לתצורה של פתרונות התצוגה שלנו:

bean.setOrder (0);

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

7. מסקנה

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

את היישום של הדרכה פשוטה זו ניתן למצוא בפרויקט github.


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