Görüşümü düzenlemek için bir yol seçmek üzereyim (spring-mvc ile, ancak bu çok önemli olmamalı)
Gördüğüm kadarıyla 6 seçenek var (birbirini dışlamasa da):
- Fayans
- Site ağı
- Freemarker
- Hız
<jsp:include>
<%@ include file="..">
Fayanslar ve Sitemesh gruplanabilir; böylece can Freemarker ve Velocity . Her grupta hangisinin kullanılacağı bu tartışma konusu değil, bu konuda yeterince soru ve tartışma var.
Bu ilginç bir okuma , ancak beni fayans kullanmaya ikna edemiyor.
Sorum şu - bu çerçeveler <@ include file="..">
JSTL ile düzgün bir şekilde yapılamayan ne veriyor ? Ana noktalar (bazıları makaleden alınmıştır):
Üstbilgi ve altbilgi gibi sayfaların bölümlerini dahil etmek - aşağıdakiler arasında bir fark yoktur:
<%@ include file="header.jsp" %>
ve
<tiles:insert page="header.jsp" />
Başlıkta parametrelerin tanımlanması - başlık, meta etiketler, vb. Bu, özellikle SEO açısından çok önemlidir. Şablon oluşturma seçenekleriyle, her sayfanın tanımlaması gereken bir yer tutucu tanımlayabilirsiniz. Ama birlikte jsp böylece JSTL kullanarak
<c:set>
(dahil sayfasında) ve<c:out>
(dahil sayfasında)Düzeni yeniden düzenleme - içerik haritasını menünün üstüne veya oturum açma kutusunu başka bir yan panelin üzerine taşımak istiyorsanız. Sayfa eklemeleri (jsp ile) iyi organize edilmemişse, bu gibi durumlarda her sayfayı değiştirmeniz gerekebilir. Ancak düzeniniz aşırı karmaşık değilse ve ortak şeyleri üstbilgi / altbilgiye koyarsanız, endişelenecek bir şey yoktur.
Ortak bileşenler ve belirli içerik arasında bağlantı - Bununla ilgili bir sorun bulamıyorum. Bir bölümü yeniden kullanmak istiyorsanız, onu herhangi bir üstbilgi / altbilgi içermeyen bir sayfaya taşıyın ve gerektiğinde ekleyin.
Verimlilik -
<%@ include file="file.jsp" %>
her şeyden daha etkilidir, çünkü bir kez derlenir. Diğer tüm seçenekler birçok kez ayrıştırılır / yürütülür.Karmaşıklık - jsp olmayan tüm çözümler ek xml dosyaları, ek kapsamlar, ön işlemci yapılandırmaları vb. Gerektirir. Bu hem bir öğrenme eğrisidir hem de daha fazla olası arıza noktası sunar. Ayrıca, desteği ve değişimi daha sıkıcı hale getirir - neler olduğunu anlamak için bir dizi dosyayı / yapılandırmayı kontrol etmeniz gerekir.
Yer tutucular - hız / serbest işaretleyici JSTL'den daha fazlasını veriyor mu? JSTL'de yer tutucu koyarsınız ve bu yer tutucuları doldurmak için modeli (denetleyiciler tarafından istek veya oturum kapsamına yerleştirilir) kullanırsınız.
Öyleyse, düz JSP'ye ek olarak / yerine yukarıdaki çerçevelerden herhangi birini kullanmam gerektiğine beni ikna edin.