Отчаяно търся машина за изглед на Java HTML, която да отговаря на три основни изисквания:
- Поддръжка за главни шаблонни страници.
- HTML шаблоните могат да се използват като подизгледи в други шаблони.
- HTML шаблоните не трябва да бъдат подкрепени от конфигурационни файлове или Java класове.
Това е за уеб приложение на Java, което се състои главно от страница само за четене и няколко страници с формуляри. Най-вероятно ще го използвам в комбинация с MVC рамка.
Главни шаблонни страници
Основната структура на HTML трябва да бъде дефинирана от основна HTML страница. Различните страници просто предоставят основното съдържание, което се поставя в основната страница, за да се създаде крайната страница. Това е повече от просто включване на горен и долен колонтитул.
Подгледи
Една страница трябва да може да използва други HTML страници/шаблони като подизгледи в собственото си съдържание. Трябва да може да предава поне един параметър, за да предостави данните, които подизгледът трябва да покаже. Освен това трябва да е възможно рекурсивно да се използват допълнителни подизгледи в рамките на подизглед. Отново, това надхвърля обикновения механизъм за включване.
Без подкрепа
HTML шаблоните трябва да се състоят от един файл, който основно е HTML или XML страница, където определени части ще бъдат заменени въз основа на предоставените данни. Те не трябва да се нуждаят от допълнителни (на шаблон) конфигурационни файлове. И не би трябвало да имат нужда да внедряват каквито и да е Java класове за поддръжка.
Вече разгледах много машини за шаблони на Java. Но нито един от тях изглежда не отговаря на тези изисквания. (В света на .NET, ASP.NET MVC с машината за изглед на Razor би било идеално решение.)
Актуализация:
Досега разгледах следните двигатели (моля, уведомете ме, ако съм пропуснал начин да постигна изискванията си с един от тези двигатели):
- JSP: Има само много основен механизъм за включване без главни шаблони или подходящ обхват за подизгледи и т.н.
- Скорост: Има леко усъвършенстван механизъм за включване, но няма главни страници.
- FreeMarker: Механизъм за включване, без главни страници.
- Tapestry: Добри подизгледи, базирани на компоненти, както и механизъм за шаблони. Въпреки това, не изглежда лесно възможно да се използва частта на двигателя на шаблона без останалата част от рамката, която е твърде ориентирана към страницата, за да се комбинира с MVC рамка.
- Плочки: Изисква две jsp страници на крайна страница. Двата слоя (плочки и jsp) го правят твърде сложен, особено за подизгледи.
Актуализация (2): Промених някои термини: изгледна машина вместо шаблонна машина, подизгледи вместо компоненти.