Saya akan memilih cara mengatur tampilan saya (dengan spring-mvc, tapi itu seharusnya tidak terlalu menjadi masalah)
Ada 6 opsi sejauh yang saya lihat (meskipun tidak saling eksklusif):
- Ubin
- Sitemesh
- Freemarker
- Kecepatan
<jsp:include>
<%@ include file="..">
Ubin dan Sitemesh dapat dikelompokkan; begitu pula Freemarker dan Velocity . Yang mana dalam setiap kelompok yang akan digunakan bukanlah masalah diskusi ini, ada cukup banyak pertanyaan dan diskusi tentang itu.
Ini adalah bacaan yang menarik , tetapi tidak bisa meyakinkan saya untuk menggunakan ubin.
Pertanyaan saya adalah - apa yang diberikan framework ini yang tidak dapat dilakukan dengan benar <@ include file="..">
dan JSTL. Poin utama (beberapa diambil dari artikel):
Menyertakan bagian halaman, seperti header dan footer - tidak ada perbedaan antara:
<%@ include file="header.jsp" %>
dan
<tiles:insert page="header.jsp" />
Menentukan parameter di header - seperti judul, meta tag, dll. Ini sangat penting, terutama dari sudut pandang SEO. Dengan opsi template, Anda dapat dengan mudah menentukan placeholder yang harus ditentukan oleh setiap halaman. Tapi jadi Anda bisa di jsp dengan JSTL , menggunakan
<c:set>
(di halaman termasuk) dan<c:out>
(di halaman yang disertakan)Reorganisasi tata letak - jika Anda ingin memindahkan runut tautan ke atas menu, atau kotak masuk di atas panel samping lain. Jika penyertaan halaman (dengan jsp) tidak diatur dengan baik, Anda mungkin perlu mengubah setiap halaman dalam kasus seperti itu. Tetapi jika tata letak Anda tidak terlalu rumit, dan Anda meletakkan hal-hal umum di header / footer, tidak ada yang perlu dikhawatirkan.
Kopling antara komponen umum dan konten spesifik - Saya tidak menemukan masalah dengan ini. Jika Anda ingin menggunakan kembali beberapa fragmen, pindahkan ke halaman yang tidak menyertakan header / footer apa pun, dan sertakan di mana pun diperlukan.
Efisiensi -
<%@ include file="file.jsp" %>
lebih efisien dari apa pun, karena dikompilasi sekali. Semua opsi lainnya diurai / dijalankan berkali-kali.Kompleksitas - semua solusi non-jsp memerlukan file xml tambahan, penyertaan tambahan, konfigurasi pra-prosesor, dll. Ini adalah kurva pembelajaran dan memperkenalkan lebih banyak titik potensi kegagalan. Selain itu, itu membuat dukungan dan perubahan lebih membosankan - Anda harus memeriksa sejumlah file / konfigurasi untuk memahami apa yang terjadi.
Placeholder - apakah velocity / freemarker memberikan lebih dari JSTL? Di JSTL Anda meletakkan placeholder, dan menggunakan model (ditempatkan dalam permintaan atau cakupan sesi, oleh pengontrol) untuk mengisi placeholder ini.
Jadi, yakinkan saya bahwa saya harus menggunakan salah satu kerangka kerja di atas daripada / selain JSP biasa.