على الرغم من أن العديد من التطورات تتبنى الآن نموذجًا منفصلًا تمامًا من الواجهة الأمامية والخلفية ، أي أن الواجهة الخلفية توفر فقط واجهات البيانات ، ويحصل الواجهة الأمامية على البيانات من خلال طلبات AJAX ، والتي لا تتطلب محرك قالب. تتمثل ميزة هذه الطريقة في أن يتم فصل النهايات الأمامية والخلفية تمامًا ، ومع تحسين أدوات الهندسة الأمامية وأطر MVC في السنوات الأخيرة ، تكون تكلفة صيانة هذا النموذج أقل نسبيًا. ومع ذلك ، فإن هذا الوضع لا يفضي إلى كبار المسئولين الاقتصاديين وسيكون أسوأ قليلاً في الأداء. هناك أيضًا بعض السيناريوهات التي سيكون استخدام محرك القالب أكثر ملاءمة ، مثل قوالب البريد الإلكتروني. تناقش هذه المقالة بشكل رئيسي تكامل Boot Spring مع محركات القالب Thymeleaf و Freemaker و JSP.
1. دمج الغدة الدرقية
الخطوة 1: تقديم حزمة الجرة (بداية المقابلة لـ Thymeleaf):
<Rependency> <roupiD> org.springframework.boot </rougiD> <intifactid> Spring-Boot-Starter-Thymeleaf </stifactid> </sependency>
الخطوة 2: تكوين thymeleaf:
الربيع: thymelef: بادئة: classpath:/templates/check-template-location: true cache: false fassix: .html الترميز: utf-8 نوع المحتوى: text/html mode: html5
البادئة: حدد الدليل الذي يقع فيه القالب
تحديد الموقع-تحقق مما إذا كان مسار القالب موجودًا
ذاكرة التخزين المؤقت: ما إذا كنت تريد ذاكرة التخزين المؤقت ، وضبطها على خطأ في وضع التطوير ، وتجنب تغيير القالب وإعادة تشغيل الخادم. يمكن أن يؤدي تعيينه إلى True Online إلى تحسين الأداء.
تشفير ومحتوى نوع: يجب أن يكون الجميع على دراية بهذا ، وهو ما يتوافق مع السمات المقابلة المحددة في Servlets.
الوضع: يرجى الرجوع إلى التعليمات على الموقع الرسمي ، وهذا هو 2.x و 3.0. الحزمة التي تم تقديمها تلقائيًا في هذه المقالة هي 2.15.
الخطوة الثالثة هي كتابة ملف قالب ThymeLeaf:
<! doctype html> <html xmlns = "http://www.w3.org/1999/xhtml" xmlns: th = "http://www.thymelef.org" content = "text/html ؛ charset = utf-8"/> </head> <body> <h6> محرك قالب thymelef </h6> <table bgcolor = "#f0ffff"> <thead> <th> الرقم التسلسلي </th> <th> $ {list} "> <tr> <td th: text =" $ {article.id} "> </td> <td th: text =" $ {article.title} "> </td> <td th: text =" $ {article.summary} "> </td th: text = </tbody> </table> </body> </html>كما ترون ، فإن Thymeleaf بسيط نسبيًا ، وأكبر ميزة لها هي أن العلامة موجودة كسممة لعنصر HTML. وهذا يعني أنه يمكن معاينة الصفحة مباشرة من خلال المتصفح ، ولكن لا توجد بيانات. هذا مريح للغاية للجميع للتصحيح.
الخطوة 4: تكوين وحدة التحكم:
@controller @requestMapping ("/article") الطبقة العامة ArticLeconTroller {autowired private articleService ؛ requestmapping ("/articlelist.html") السلسلة العامة getArticLelist (نموذج النموذج ، عنوان السلسلة ، requestparam (defaultValue = "10") integer pagesize ، requestparam (defaultValue = "1") integer pagenum) {int Exffset = قائمة <Contract> list = articleservice.getArticles (العنوان ، 1L ، الإزاحة ، pagesize) ؛ model.addattribute ("List" ، List) ؛ إرجاع "مقالة/articlelist" ؛ }}لاحظ أن التعليق التوضيحي المستخدم هنا هو Controller ، وليس RestController ، لأن RestController سيقوم تلقائيًا بتحويل نتيجة الإرجاع إلى سلسلة.
الخطوة 5 عرض النتائج
2. التكامل بين الحذاء الربيعي وعلامة المزيج
1.
<Rependency> <roupled> org.springframework.boot </rougiD> <intifactid> Spring-Boot-Starter-Freemarker </shintifactid> </sependency>
2. تكوين علامة تجارية:
Spring: Freemarker: Template-Loader-Path: ClassPath:/Templates/Factix: .ftl content-type: text/html charset: utf-8 settings: number_format: '0. ##'
بالإضافة إلى الإعدادات ، تشبه خيارات التكوين الأخرى Thymeleaf. سيكون للإعدادات تأثير على بعض سلوكيات العلامات الجنسية ، مثل تنسيق التاريخ ، وتنسيق الأرقام ، وما إلى ذلك ، يمكن للطلاب المهتمين الرجوع إلى الإرشادات التي يقدمها الموقع الرسمي: https://freemarker.apache.org/docs/api/freemarker/template.html#setting-java.lang.lang.lang.lang.lang.lang.lang.lang.lang.lang.lang.lang.lang.lang.langtring.lang.lang.lang.langtring.langtring.lang.lang.lang.lang.lang.langtring.langtring.lang.lang.lang.lang.lang.lang.lang.lang.lang.lang.lang.lang.lang.lang.lang.
3. اكتب ملف قالب المؤشرات المتجلة:
<html> <title> قائمة المقالة </title> <body> <h6> محرك قالب الماركين </h6> <table> <thead> <tr> <th> الرقم التسلسلي </th> <th> title </td> <td> </td> </td> <th> <td> $ {article.title} </td> <td> $ {article.summary} </td> <td> $ {article.createTime؟4. اكتب وحدة التحكم:
@controller @requestMapping ("/article") الطبقة العامة ArticLeconTroller {autowired private articleService ؛ requestMapping ("/list.html") السلسلة العامة getArticles (نموذج النموذج ، عنوان السلسلة ، requestparam (defaultValue = "10") integer pagesize ، integer pagenum) {if (pagesize == null) {pagesize = 10 ؛ } if (pagenum == null) {pagenum = 1 ؛ } int offset = (pagenum - 1) * pagesize ؛ قائمة <Contract> list = articleservice.getArticles (العنوان ، 1L ، الإزاحة ، pagesize) ؛ model.addattribute ("List" ، List) ؛ إرجاع "مقالة/قائمة" ؛ }}5. قم بزيارة الصفحة:
3. يتكامل Sring Boot مع JSP:
في تطوير المشاريع الرسمية ، نادراً ما يتم استخدام قوالب JSP ، لذا فإن Boot SPRING يدعم JSP ليس جيدًا جدًا ، لذلك فهو أكثر تعقيدًا نسبيًا للتكوين من Thymeleaf و Freemaker.
الخطوة الأولى هي تقديم حزمة الجرة:
<Rependency> <roupEd> javax.servlet </rougiD> <StifactId> jStl </suntifactid> </reperence> <reperence> <roupiD> org.apache.tomcat.embed </groupid> <StifactId> tomcat-embed-jasper </attifactid>
يتم استخدام التبعية الأولى JSTL لدعم تعبيرات EL ، ويتم استخدام الثانية لدعم JSP. لاحظ أنه إذا كان يعمل في Tomcat الخارجي ، فأنت بحاجة إلى تعيين نطاق لتوفيره لمنع تعارضات حزمة JAR.
الخطوة 2: قم بإنشاء دليل WebApp يدويًا:
تحتاج إلى إنشاء دليل WebApp يدويًا في الدليل الرئيسي ، مع الهيكل على النحو التالي:
الخطوة 3 تكوين قوة الطريق JSP:
أضف التكوين التالي في Application.yml:
Spring: MVC: عرض: بادئة:/web-inf/jsp/لاحقة: .jsp
يجب أن يكون أولئك الذين يفهمون MVC Spring على دراية بالتكوين أعلاه.
الخطوة 4: اكتب صفحة JSP:
<٪@ page contentType = "text/html ؛ charset = utf-8" language = "java" ٪> <٪@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c عناصر = "$ {list}"> <tr> <td> $ {article.id} </td> <td> $ {article.title} </td> <td> $ {article.summary} </td> <td> $ {article.createtime} </td>الخطوة 5: اكتب وحدة التحكم:
requestmapping ("/listjsp") السلسلة العامة getArticListjsp (نموذج النموذج ، عنوان السلسلة ، requestparam (defaultValue = "10") integer pagesize ، integer pagenum) {if (pagesize == null) {pagesize = 10 ؛ } if (pagenum == null) {pagenum = 1 ؛ } int offset = (pagenum - 1) * pagesize ؛ قائمة <Contract> list = articleservice.getArticles (العنوان ، 1L ، الإزاحة ، pagesize) ؛ model.addattribute ("List" ، List) ؛ إرجاع "المقالات" ؛ }الخطوة 6 للوصول إلى صفحة النتائج:
4. ملخص
بشكل عام ، يعد SPRING BOOD ودودًا لدعم Thymeleaf و Freemaker ، والتكوين بسيط نسبيًا. في التطوير الفعلي ، يعتمد معظمهم بشكل أساسي على هاتين المحركين من القالب ، وهناك عدد قليل من JSPs. يمكن الآن استخدام JSPs أكثر أثناء التجربة أو مرحلة التعلم. الشيء الأكثر إثارة للقلق حول تكوين JSP هو أنه ليس مثل الأولين. البيان عبر الإنترنت هو نفسه في الأساس ، ولكن هناك العديد من العبارات حول تكوين JSP ، مثل ما إذا كان من الضروري تغيير حزمة JAR إلى حزمة الحرب؟ هل يجب تعيين تبعية JSP لتوفيرها ، وما إلى ذلك. هذا يعتمد بشكل أساسي على ما إذا كنت تريد نشر البرنامج على tomcat الخارجي في النهاية أو تشغيل الجرة مباشرة؟ نظرًا لأن هذه المقالة تدير فئة التطبيق مباشرةً ضمن IDEA ، فليس هناك حاجة إلى هذه العمليات.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.