2011-01-05 2 views
2

Я собираюсь начать новый проект Spring MVC, и я изучаю различные варианты представления. Я никогда не был поклонником JSP, и в прошлом я столкнулся с проблемами производительности, связанными с JSP, поэтому я просматривал другие варианты. Я надеюсь, что где-нибудь кто-то перечислил различные варианты (может быть, это должен быть я) и произнес, какие из них быстры, или, по крайней мере, какие варианты есть. Вот выбор, я думал о, заказанные очевидно, странно:Самый быстрый язык Java для веб-шаблонов

  • JSP, JSTL
  • Velocity
  • FreeMarker
  • GSP (Groovy JSP)
  • ERB питание от IronRuby или некоторых такие сумасшествия
  • Чай

Любые предложения, личные предпочтения или другие Go od для списка?

ответ

3

Я предпочитаю Velocity в эти дни. Производительность прекрасна. Мне нравится естественный способ развязки шаблона и данных.

2

Раньше я использовал скорость. Проект немного застопорился и имел некоторые известные проблемы, поэтому переключился на Freemarker. Я верю (не цитирую меня). Фримаркер пришел, потому что Velocity потеряла импульс. Каламбур не предназначен.

С тех пор Velocity снова активизировалась, по крайней мере, на некоторое время. Я предпочитаю Freemarker прямо сейчас, но любой из этих двух работает хорошо. Я бы пошел с тем, что легче подключить к Spring MVC.

7

StringTemplate - быстрый, простой и помогает обеспечить разделение интересов MVC. Последнее, что я проверил, Spring Web MVC не предоставляет класс View для него, но я смог легко create a custom one.

+0

Посмотрите на эти http://code.google.com/p/stringtemplate-web-extensions/, http://code.google.com/p/ springmvc-stringtemplateview/ –

5

Хотя я бы, вероятно, пойти с FreeMarker или Velocity сам, я удивлен, что вы называете

JSP связанные проблемы с производительностью

Из всех этих возможных решений, JSP, очевидно, является лучшим -performing. В конце концов, страницы JSP скомпилированы в классы Servlet и исполняются из байтового кода, тогда как все другие упомянутые вами технологии интерпретируются.

Если у вас есть проблемы с производительностью, оптимизируйте свой JSP-код или используйте JSP-компилятор, например JSPC, чтобы предварительно скомпилировать ваши JSP-страницы (возможно, с maven, используя JSPC-maven-plugin).

+0

+1. Кстати, другие шаблоны чаще всего кэшируются, поэтому не огромная разница в производительности. – Bozho

+0

Вы правы, конечно. JSP должен быть довольно быстрым. Наш последний проект, однако, стал довольно сложным, и у нас были JSP-файлы, включая JSP-файлы, включая JSP-файлы. Я подозреваю, что мы потратили больше времени на оптимизацию, мы могли бы действительно ускорить процесс. –

+0

«все другие технологии, о которых вы упомянули, интерпретируются»: GSP скомпилированы в Groovy, а затем Java, то, как они работают, аналогично JSP – Kedare

0

Я согласен с Sean Patrick Floyd в том, что JSP должен быть очень быстрым. В большинстве случаев даже быстрее, чем другие двигатели шаблонов, даже если они кэшированы.

Если вы действительно работаете в JSP, связанной с проблемой производительности, чем я считаю, вы должны переосмыслить, как вы используете JSP.

И, по крайней мере, если у вас есть «горячая точка», которая вызывает проблему с производительностью, вы можете построить эту (надежду) мелкую кучу вручную (StringBuilder).

Итак, чтобы обернуть это: Я верю, что JSP является постом (за исключением того, что это делается вручную), но, с другой стороны, у вас должен быть особый случай использования для решения проблемы с перфомансом с любым из основных шаблоны, которые вы упомянули.

0

Вы должны попробовать MVEL. Это быстрее, чем все, что я знаю (в том числе StringTemplate), очень мощный и похоже на скриптинг в простой Java.

<p> 
    @foreach{index : alphabetical} 
    <a href="@{index.uri}">@{index.description}</a> 
    @end{} 
</p> 

или

<a href="@{ua.pageURI}"> 
    @{org.apache.commons.lang.StringEscapeUtils.escapeHtml(ua.name)} 
</a> 
Смежные вопросы