ฉันกำลังจะเลือกวิธีจัดระเบียบมุมมองของฉัน (ด้วย spring-mvc แต่ไม่น่าจะสำคัญเท่าไหร่)
มี 6 ตัวเลือกเท่าที่ฉันเห็น (แม้ว่าจะไม่สามารถใช้ร่วมกันได้):
- กระเบื้อง
- Sitemesh
- Freemarker
- ความเร็ว
<jsp:include>
<%@ include file="..">
ไทล์และแผนผังเว็บไซต์สามารถจัดกลุ่มได้ เพื่อให้สามารถFreemarkerและความเร็ว ข้อใดในแต่ละกลุ่มที่จะใช้ไม่ใช่ประเด็นของการสนทนานี้มีคำถามและการอภิปรายเกี่ยวกับเรื่องนี้เพียงพอ
นี่เป็นการอ่านที่น่าสนใจแต่ไม่สามารถโน้มน้าวให้ฉันใช้กระเบื้องได้
คำถามของฉันคือ - กรอบเหล่านี้ให้อะไรที่ไม่สามารถทำได้อย่างถูกต้อง <@ include file="..">
และ JSTL ประเด็นหลัก (บางส่วนนำมาจากบทความ):
การรวมบางส่วนของหน้าเช่นส่วนหัวและส่วนท้าย - ไม่มีความแตกต่างระหว่าง:
<%@ include file="header.jsp" %>
และ
<tiles:insert page="header.jsp" />
การกำหนดพารามิเตอร์ในส่วนหัวเช่นชื่อเรื่องเมตาแท็ก ฯลฯ สิ่งนี้สำคัญมากโดยเฉพาะจากมุมมองของ SEO ด้วยตัวเลือกเทมเพลตคุณสามารถกำหนดตัวยึดตำแหน่งที่แต่ละเพจควรกำหนดได้ แต่คุณสามารถใน jsp ด้วยJSTLโดยใช้
<c:set>
(ในหน้ารวม) และ<c:out>
(ในหน้าที่รวม)การจัดโครงสร้างใหม่ - หากคุณต้องการย้ายเบรดครัมบ์เหนือเมนูหรือกล่องล็อกอินเหนือแผงด้านข้างอื่น หากการรวมหน้า (ด้วย jsp) ไม่ได้รับการจัดระเบียบอย่างดีคุณอาจต้องเปลี่ยนทุกๆหน้าในกรณีเช่นนี้ แต่ถ้าเค้าโครงของคุณไม่ซับซ้อนเกินไปและคุณใส่สิ่งที่พบบ่อยไว้ในส่วนหัว / ส่วนท้ายก็ไม่มีอะไรต้องกังวล
การเชื่อมต่อระหว่างส่วนประกอบทั่วไปกับเนื้อหาเฉพาะ - ฉันไม่พบปัญหากับสิ่งนี้ หากคุณต้องการใช้ซ้ำบางส่วนให้ย้ายไปยังหน้าที่ไม่มีส่วนหัว / ส่วนท้ายและรวมไว้ที่ใดก็ได้ที่จำเป็น
ประสิทธิภาพ -
<%@ include file="file.jsp" %>
มีประสิทธิภาพมากกว่าสิ่งอื่นใดเพราะรวบรวมครั้งเดียว ตัวเลือกอื่น ๆ ทั้งหมดจะถูกแยกวิเคราะห์ / ดำเนินการหลายครั้งความซับซ้อน - โซลูชันที่ไม่ใช่ jsp ทั้งหมดต้องการไฟล์ xml เพิ่มเติมการรวมเพิ่มเติมการกำหนดค่าตัวประมวลผลล่วงหน้า ฯลฯ ซึ่งเป็นทั้งเส้นโค้งการเรียนรู้และแนะนำจุดที่อาจเกิดความล้มเหลวเพิ่มเติม นอกจากนี้ยังทำให้การสนับสนุนและการเปลี่ยนแปลงน่าเบื่อมากขึ้น - คุณต้องตรวจสอบไฟล์ / การกำหนดค่าต่างๆเพื่อให้เข้าใจว่าเกิดอะไรขึ้น
ตัวยึดตำแหน่ง - velocity / freemarker ให้อะไรมากกว่า JSTL หรือไม่? ใน JSTL คุณใส่ตัวยึดตำแหน่งและใช้โมเดล (วางไว้ในขอบเขตคำขอหรือเซสชันโดยคอนโทรลเลอร์) เพื่อเติมตัวยึดตำแหน่งเหล่านี้
ดังนั้นโน้มน้าวใจฉันว่าฉันควรใช้กรอบใด ๆ ข้างต้นแทน / นอกเหนือจาก JSP ธรรมดา