Mam zamiar zdecydować się na sposób uporządkowania mojego widoku (z wiosennym MVC, ale to nie powinno mieć większego znaczenia)
O ile widzę, istnieje 6 opcji (choć nie wykluczają się one wzajemnie):
- Płytki
- Sitemesh
- Freemarker
- Prędkość
<jsp:include>
<%@ include file="..">
Kafelki i Sitemesh można grupować; tak samo jak Freemarker i Velocity . Który z nich w każdej grupie nie jest przedmiotem tej dyskusji, jest wystarczająco dużo pytań i dyskusji na ten temat.
To ciekawa lektura , ale nie mogę przekonać mnie do używania kafelków.
Moje pytanie brzmi - co dają te frameworki, czego nie da się poprawnie zrobić z <@ include file="..">
JSTL. Główne punkty (niektóre zaczerpnięte z artykułu):
Obejmuje części stron, takie jak nagłówek i stopka - nie ma różnicy między:
<%@ include file="header.jsp" %>
i
<tiles:insert page="header.jsp" />
Definiowanie parametrów w nagłówku - jak tytuł, metatagi itp. Jest to bardzo ważne, szczególnie z punktu widzenia SEO. Dzięki opcjom szablonów możesz po prostu zdefiniować symbol zastępczy, który powinna zdefiniować każda strona. Ale możesz w jsp z JSTL , używając
<c:set>
(na stronie zawierającej) i<c:out>
(na dołączonej stronie)Reorganizacja układu - jeśli chcesz przenieść menu nawigacyjne nad menu lub pole logowania nad inny panel boczny. Jeśli dołączenia stron (z jsp) nie są dobrze zorganizowane, w takich przypadkach może być konieczna zmiana każdej strony. Ale jeśli twój układ nie jest zbyt złożony i umieścisz typowe rzeczy w nagłówku / stopce, nie ma się czym martwić.
Sprzężenie między typowymi komponentami a określoną zawartością - nie widzę z tym problemu. Jeśli chcesz ponownie użyć jakiegoś fragmentu, przenieś go na stronę, która nie zawiera żadnego nagłówka / stopki, i dołącz go tam, gdzie jest to potrzebne.
Wydajność -
<%@ include file="file.jsp" %>
jest wydajniejsza niż cokolwiek innego, ponieważ jest kompilowana raz. Wszystkie inne opcje są analizowane / wykonywane wiele razy.Złożoność - wszystkie rozwiązania inne niż jsp wymagają dodatkowych plików xml, dodatkowych dołączeń, konfiguracji preprocesorów itp. Jest to zarówno krzywa uczenia się, jak i wprowadzenie większej liczby potencjalnych punktów awarii. Ponadto sprawia, że obsługa i zmiana są bardziej uciążliwe - musisz sprawdzić wiele plików / konfiguracji, aby zrozumieć, co się dzieje.
Placeholder - czy velocity / freemarker daje coś więcej niż JSTL? W JSTL umieszczasz element zastępczy i używasz modelu (umieszczonego w żądaniu lub zakresie sesji przez kontrolery), aby wypełnić te symbole zastępcze.
Więc przekonaj mnie, że powinienem użyć dowolnego z powyższych frameworków zamiast / oprócz zwykłego JSP.