Какая технология шаблонов Java HTML работает так, чтобы она была ближе всего к Ruby (erb / haml)? - PullRequest
1 голос
/ 03 мая 2009

Среди Java шаблонных решений , таких как Apache Velocity, Freemarker, Hamlets, Tapestry, StringTemplate, JSP, JSP Weaver (другие?), Которые наиболее близко приближаются к лаконичности и простоте аналогичных HTML-шаблонных решений в Рубин - хамл / эрб. Я обеспокоен как синтаксисом шаблонизатора, так и тем, насколько просто он интегрируется с кодом контроллера на сервере.

Ответы [ 3 ]

2 голосов
/ 09 декабря 2009

Практика смешивания кода и данных не одобряется в Java гораздо больше, чем в Ruby. Рекомендуемая практика Java состоит в том, чтобы использовать taglibs вместо блоков кода. Я упоминаю об этом только потому, что если вы пишете свои шаблоны Java так же, как типичные шаблоны Ruby, другие разработчики Java (я полагаю, вы работаете в команде), вероятно, будут жаловаться.

Так что теперь, чтобы ответить на ваш вопрос ..... стандартные JSP вместе с JSTL и EL на самом деле не плохое решение. Но для большей краткости, проверьте GSP, шаблонное решение, используемое Grails. Вы можете использовать GSP в любом веб-приложении на Java, то есть вам не нужно использовать Groovy / Grails.

0 голосов
/ 03 мая 2009

... Вы даже можете использовать PHP, если хотите использовать Quercus . Тогда вы, как и JSP, Velocity и т. Д., Можете использовать их в качестве «вида» и пружины или распорок и т. Д. Для управления контроллером (ами).

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

Большинство механизмов рендеринга / шаблонов имеют различный синтаксис. Преимущество (и чудовище) Java в том, что вы можете выбрать, какой синтаксис вам удобнее, и использовать его с вашим контроллером / контейнером по выбору.

0 голосов
/ 03 мая 2009

Я думаю, что вы получаете на это

рубин

<% foreach vars do |var| %>
  <!-- some html code to do -->
  <%=h var %>
<% end %>

Java

<% for( int i = 0; i < vars.length; i++ ) { %>

   <%=vars[i]%>
<% }  %>

так что теги похожи

для java-стороны контроллера, view spring предоставляет способ красиво их разделить

...