Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Spring MVC и шаблоны страниц


Автор: DissDoc 20.6.2012, 16:10
Всем привет! Объясните пожалуйста человеку, есть ли в Spring MVC какой-либо зачаток для шаблонов страниц. Уж простите, но я только встречаю примеры страниц, где на каждой странице повторяются одни и те же куски кода. Работая с Ruby on Rails и Django, и перейдя наконец на мой любимый язык Java - меня это мягко говоря пугает. Или я неправильно задаюсь вопросом и нужно искать сторонние какие-то шаблонизаторы? Я сторонние нашел.

Автор: Vasay 20.6.2012, 16:48
DissDoc
 
Со Spring MVC можно использовать SiteMesh, Tiles,.. можно velocity, freemarker...

Автор: DissDoc 21.6.2012, 08:46
Velocity знаю, находил до этого.
А вот Apache Tiles действительно заинтересовал, с условием того, что он идет прямо "из коробки" Spring MVC. Спасибо за наводку.

Автор: Stolzen 21.6.2012, 11:12
В свое время столкнулся с проблемой поиска шаблонизатора для java - после django все не то. 
Остановился на jsp + tiles. Кстати, в play шаблоны немного похожи.

Автор: gelo86 21.6.2012, 13:50
Я пару лет использовал jsp + tiles. Но последнее время перешол на sitemesh + thymeleaf !!! Новая комбинация намного удобнее и проще, код html'а намного приятние, советую использовать thymeleaf.

Вместо sitemesha:
http://forum.thymeleaf.org/Thymeleaf-Layout-Dialect-Sitemesh-like-page-composition-td4024771.html

Автор: DissDoc 22.6.2012, 11:17
И это при том, что в Django шаблонизатор убог. Самый идеал для меня стал - это rails + haml )
Вот это лучшая реализация шаблонизатора как такового была.

Поэтому спрошу тут, раз речь о шаблонизаторах, то мы остаемся в этом контексте. Итак.
У меня допустим есть коллекция какая-то, лучше самый примитив - список. Ну и хочу его вывести на экран весь. Вот в tiles можно кусок кода описать в отдельном тайле и потом туда передавать только список. Или же нет?

Для примера как я делаю в Ruby on Rails (но напишу на псевдокоде, не все знают Ruby)

В основной странице что-то вроде описываем 
Код

<patial  template="item.jsp", collection="myList" />


А теперь описание каждого элемента в item.jsp
Код

<p>item.name</p>


И все это на главное странице выведется в виде 
Item 1
Item 2
и т.д.

Надеюсь я доношу информацию. что хочу видеть в шаблонизаторе )

Автор: Vasay 22.6.2012, 12:04
DissDoc

C "tiles" я не работал. Но в других шаблонизаторах с которыми имел дело - сделать такое можно. Потому, думаю и в tiles можно.

Например в Velocity

Мы можем создать некий макрос:

Цитата

#macro( plist $somelist )
  #foreach( $something in $somelist )
     <p>$something</p>
  #end
#end


Соответственно, применение этого макроса:
Цитата

    #plist( $menulist )


Ну и макросы можно вынести в отдельные файлы. 

Автор: Stolzen 22.6.2012, 19:15
Видимо, речь идет о forEach в jsp:
Код

 <c:forEach var="branch" items="${section.branches}"> ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)