שילוב אריחי אפאצ'י עם MVC באביב

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

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

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

היתרונות של מסגרת זו על פני מסגרות אחרות כוללים:

  • שימוש חוזר
  • קלות בתצורה
  • תקורה עם ביצועים נמוכים

במאמר זה נתמקד שילוב של אריחי אפאצ'י עם אביב MVC.

2. תצורת תלות

השלב הראשון כאן הוא להוסיף את התלות הדרושה ב- pom.xml:

 org.apache.tiles tile-jsp 3.0.8 

3. קבצי פריסת אריחים

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

4. הגדרת יישום ושיעורים אחרים

כחלק מהתצורה ניצור שלוש מחלקות Java ספציפיות הנקראות ApplicationInitializer, ApplicationController ו הגדרת יישום:

  • ApplicationInitializer מאתחל ובודק את התצורה הדרושה שצוינה ב- הגדרת יישום שיעורים
  • הגדרת יישום מחלקה מכילה את התצורה לשילוב Spring MVC עם מסגרת Apache Tiles
  • ApplicationController הכיתה עובדת מסונכרנת עם tile.xml קובץ ומפנה לדפים הדרושים המבוססים על הבקשות הנכנסות

בואו נראה כל אחד מהשיעורים בפעולה:

@Controller @RequestMapping ("/") מחלקה ציבורית TilesController {@RequestMapping (value = {"/"}, method = RequestMethod.GET) public String homePage (מודל ModelMap) {להחזיר "הביתה"; } @ RequestMapping (value = {"/ apachetiles"}, method = RequestMethod.GET) public String productsPage (ModelMap Model) {return "apachetiles"; } @RequestMapping (value = {"/ springmvc"}, method = RequestMethod.GET) ציבורי מחרוזת contactUsPage (דגם ModelMap) {החזר "springmvc"; }}
מחלקה ציבורית WebInitializer מיישמת את WebApplicationInitializer {public void onStartup (ServletContext container) זורק את ServletException {AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext (); ctx.register (TilesApplicationConfiguration.class); container.addListener (ContextLoaderListener חדש (ctx)); ServletRegistration.Dynamic servlet = container.addServlet ("dispatcher", DispatcherServlet חדש (ctx)); servlet.setLoadOnStartup (1); servlet.addMapping ("/"); }}

ישנן שתי מחלקות חשובות אשר ממלאות תפקיד מפתח בתצורת אריחים ביישום MVC של Spring. הם TilesConfigurer ו TilesViewResolver:

  • TilesConfigurer מסייע בקישור מסגרת Tiles למסגרת Spring על ידי מתן הנתיב לקובץ התצורה של אריחים
  • TilesViewResolver הוא אחד ממחלקת המתאם שמספק Spring API לפתרון תצוגת האריחים

לבסוף, ב הגדרת יישום בכיתה, השתמשנו TilesConfigurer ו TilesViewResolver שיעורים להשגת שילוב:

@Configuration @EnableWebMvc @ComponentScan (basePackages = "com.baeldung.spring.controller.tiles") TilesApplicationConfiguration בכיתה ציבורית מיישמת WebMvcConfigurer {@Bean Public TilesConfigurer tileConfigurer () {TilesConfigurer tileConfigurer = new TilesConfigurer = חדש tileConfigurer.setDefinitions (מחרוזת חדשה [] {"/WEB-INF/views/**/tiles.xml"}); tileConfigurer.setCheckRefresh (נכון); להחזיר tileConfigurer; } @Override חלל ציבורי configureViewResolvers (רישום ViewResolverRegistry) {TilesViewResolver viewResolver = TilesViewResolver חדש (); registry.viewResolver (viewResolver); } @Override public void addResourceHandlers (ResourceHandlerRegistry registry) {registry.addResourceHandler ("/ static / **") .addResourceLocations ("/ static /"); }}

5. קובצי תבנית אריחים

עד עכשיו סיימנו את התצורה של מסגרת ה- Apache Tiles ואת הגדרת התבנית והאריחים הספציפיים המשמשים בכל היישום.

בשלב זה עלינו ליצור את קבצי התבנית הספציפיים שהוגדרו ב- tile.xml.

אנא מצא את קטע הפריסות שיכול לשמש כבסיס לבניית דפים ספציפיים:

6. מסקנה

זה מסיים את השילוב של אביב MVC עם אריחי אפאצ'י.

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


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