Подтвердить что ты не робот

Есть ли язык шаблонов, похожий на веб-приложения Razor для Java Spring?

Я влюблен в шаблоны бритв в .NET MVC 3. Есть ли что-то близко для java?

Я бы искал что-то, где я мог бы избежать использования тегов JSTL и вместо этого сделать что-то вроде этого:

<c:if test=${bla}>
   <span>my html</span>
</c:if>

и вместо этого

@if(bla)
{
  <span>my html</span>
}

Я предполагаю, что должен быть аналогичный

4b9b3361

Ответ 1

Я хотел бы представить свою работу: механизм шаблонов ритма, легкий и супер быстрый механизм шаблонов в Java с помощью Razor, как синтаксис. Rythm имеет богатые возможности и поддерживает макет страницы/наследование, настраиваемые теги (либо в шаблоне, либо в классе java), динамическая перезагрузка в режиме dev и многое другое. Тест показывает, что Rythm в 2 - 3 раза быстрее, чем Velocity на обычной странице!

API прост:

  • выполнить рендеринг со встроенной строкой:

    String output = Rythm.render("@args String who;hello @who!", "world");

  • рендеринг с файлом шаблона:

    String output = Rythm.render("hello.txt", "world");

Краткое введение в Rythm: http://software-lgl.blogspot.com.au/2012/03/rythm-easy-to-use-high-performance-java.html

Обновления 20120701

В последней версии появилась функция "String Interpolation Mode ", которая позволяет сделать очень легкую интерполяцию строк, как показано ниже:

String result = Rythm.render("hello @who!", "world");

A полнофункциональная демонстрация размещена на GAE: http://play-rythm-demo.appspot.com/

Обновления 20130406

Веб-сайт с ритмической скриптой теперь доступен, и вы можете использовать его для изучения синтаксиса Rythm. Проверьте это на http://fiddle.rythmengine.org

Обновления 20130513

  • имя пакета изменено с com.greenlaw110.rythm на org.rythmengine, изменился идентификатор группы maven.
  • Оформить заказ на новый веб-сайт проекта: http://rythmengine.org

Ответ 2

Насколько я знаю, в этом мире Java нет такого, что выглядит и ведет себя как Razor.

Из того, что я могу понять, механизм шаблонов в Razor не только анализирует "заполнители" в статическом тексте, например #xxx в Velocity или ${xxx} в JSP.

Вместо символа @ в Razor действует как переключатель для переключения на парсер языка хоста (VB и С# в случае Razor), распознавая полный синтаксис элемента, непосредственно следующего за знаком @. Это позволяет Razor распознавать как имена объектов, переданных движку, так и синтаксические структуры, например, для циклов и условных обозначений.

Это открывает всю мощь языка хостинга для шаблонов Razor, что может быть опасной вещью в неправильных руках...

Большинство шаблонизационных движков на Java-стороне мира заведомо выбрали строгое разделение бизнес-логики от проблем с шаблонами и, таким образом, имеют очень ограниченную или вообще не поддерживают динамические функции, такие как циклирование или условные выражения в своих "языковых" шаблонах, предпочитая декларативный стиль по динамическому.

Ответ 3

Spring поддерживает несколько языков шаблонов:

Подробнее о том, как интегрироваться с Spring, см. на этой странице.

Кроме того, StringTemplate, который не упоминается в официальной документации Spring, можно использовать как механизм шаблона Spring.

И если вы действительно хотите разразиться, здесь страница с примерно одним базируемым движком шаблонов.

Ответ 4

Взгляните на twirl, механизм шаблона платформы воспроизведения отделен от фреймворка.

Пример:

@if(items.isEmpty) {
  <h1>Nothing to display</h1>
} else {
  <h1>@items.size items!</h1>
}

Ответ 5

Попробуйте взглянуть на скорость (http://velocity.apache.org)