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

17

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

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

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

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

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

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

    
задан Tim H 25.08.2011 в 16:53
источник

5 ответов

23

Я хотел бы представить свою работу: механизм шаблонов ритма , легкий и супер быстрый механизм шаблонов в Java с помощью < a href="http://razorengine.codeplex.com"> Razor , как синтаксис. Rythm имеет богатые возможности и поддерживает макет страницы / наследование, настраиваемые теги (либо в шаблоне, либо в классе java), динамическая перезагрузка в режиме dev и многое другое. В тесте показано, что Rythm в 2 - 3 раза быстрее, чем Скорость на обычной странице!

API прост:

  1. рендеринг со встроенной строкой:

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

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

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

Краткое введение в Rythm: Ссылка

Обновления 20120701

В последней версии появилась функция « Режим интерполяции строк », которые позволяют вы сделаете очень легкую интерполяцию строк, например:

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

A полнофункциональная демонстрация размещена на GAE: Ссылка

Обновления 20130406

Веб-сайт с ритмической скриптой теперь доступен, и вы можете использовать его для изучения синтаксиса Rythm. Посмотрите на Ссылка

Обновления 20130513

  • имя пакета изменено с com.greenlaw110.rythm до org.rythmengine , изменился идентификатор группы maven.
  • Оформить заказ на новый веб-сайт проекта: Ссылка
ответ дан Gelin Luo 07.03.2012 в 07:39
источник
7

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

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

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

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

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

    
ответ дан Roland Tepp 30.11.2011 в 10:39
источник
4

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

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

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

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

    
ответ дан atrain 25.08.2011 в 23:41
источник
3

Посмотрите вернитесь , механизм шаблона движка воспроизведения отделен от рамки.

Пример:

@if(items.isEmpty) {
  <h1>Nothing to display</h1>
} else {
  <h1>@items.size items!</h1>
}
    
ответ дан deamon 27.06.2013 в 21:23
источник
2

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

    
ответ дан vickirk 25.08.2011 в 17:00
источник