Как сделать: JSP скриптлет эквивалентный код в freemarker - PullRequest
2 голосов
/ 14 апреля 2011

Я работаю над одним POC, где мне нужно создать freemarker ftl, эквивалентный JSP. Цель состоит в том, чтобы выяснить, насколько просто создать эквивалентный jsp ftl-файл. Я наткнулся на некоторые скриптлеты в jsp файле и не уверен, какой подход я должен использовать, чтобы написать то же самое в коде на ftl. Должен ли я создавать теги, поддерживающие код скриптлета ... но тогда будет слишком дорого писать теги для каждого скриплета (может быть, я здесь совершенно не прав). Я застрял здесь. Можете ли вы сказать мне наилучший подход для написания того же кода в Sriptlet.

Спасибо, Хануман.

1 Ответ

6 голосов
/ 14 апреля 2011

Одно из основных отличий между FreeMarker и JSP заключается именно в том, что FreeMarker не поддерживает произвольные фрагменты кода Java в шаблоне. Что касается разделения интересов, это очень хорошая вещь.

Если вам абсолютно необходимо преобразовать JSP-скриптлеты в шаблон FreeMarker, вы должны сначала проверить, что на самом деле делают эти скриптлеты. Некоторые из них могут быть заменены их эквивалентными макросами; например:

<% if (x < 3) { %>

может быть легко заменено на:

<#if (x < 3)>

Вы поняли.

Оставшиеся скриптлеты могут быть заменены пользовательскими макросами FreeMarker, но вы должны вместо этого задать себе вопрос: не слишком ли много в моем шаблоне?

Что касается написания универсального макроса, который может содержать код Java, это будет очень сложно, потому что, хотя JSP фактически компилируются в сервлеты во время выполнения, обработка шаблона FreeMarker не требует компиляции Java. Что, опять же, хорошо.

...