![]() |
|
![]() ![]() ![]() |
|
4eJIoBekMoJIekyJIa |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
Всем, привет. Хочу создать тег, который в качестве параметра будет принимать кусок кода.
В JSP2.0 я могу сделать так: <p:foo> <jsp:attribute name="attr"> blahblahblah <p:bar paramt='${param}'/> </jsp:attribute> </p:foo> и в реализации тега p:foo добавить <jsp:invoke fragment="attr" /> Подскажите, есть чтолибо подобное в Grails GSP? --------------------
|
|||
|
||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
В gsp есть шаблоны. Например, через <g:render ... />, <g:include ... />
[url=http://grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.2.3 Views and Templates]См. тут.[/url] Это сообщение отредактировал(а) emmanuil - 24.5.2011, 10:29 |
|||
|
||||
4eJIoBekMoJIekyJIa |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
с помощью g:include того что я хочу добиться нельзя.
Похоже единственное решение это: <g:set var="attr"> blahblahblah <p:bar paramt='${param}'/> </g:set> <g:render template="foo" model="[attr: attr]"/> _foo.gsp: <p>in foo</p> ${attr} <p>still inn foo</p> Конечно не совсем то но все же --------------------
|
|||
|
||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
||||
|
||||
4eJIoBekMoJIekyJIa |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
Не понимаю, поясни пожалуйста, как с помощью include я смогу передать разметку в созданный мной шаблон? Нужно создать шаблон foo в который я передам разметку как параметр и выведу ее. Т.е если я на gsp странице вызову темплейт foo вот так:
и внутри моего шаблона foo я напишу
то в итоге получу страницу Template said: Hello World! Это сообщение отредактировал(а) 4eJIoBekMoJIekyJIa - 8.6.2011, 17:50 --------------------
|
||||||
|
|||||||
emmanuil |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
Через include:
А в контролере делаешь render(template: 'path_to_template', model: [par1, par2]) То же самое можно сделать через тег <g:render />, просто в контролере можно реализовать логику по подготовке модели, например.
Вот я и спрашиваю зачем передавать разметку через переменную?! Может я чего не до понял... Этот участок кода сделать шаблоном:
и потом в коде
и получишь то же самое. Добавлено через 2 минуты и 22 секунды А, чуть не упустил. Можно передавать название шаблона в другой шаблон и рендерить, если заранее не известен шаблон. |
||||||||
|
|||||||||
4eJIoBekMoJIekyJIa |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
Например, я хочу сделать тег который выводит некую хитрую таблицу, эту таблицу я хочу использовать в разных местах, но немного видоизмененной, например добавлять после последнего столбца еще какието столбцы. Т.е я пишу
И в реализации тега:
И соответственно то что я передал как controlColumnsHeader подставляется в хедер таблицы, аналогично controlColumnsContent подставляется в тело таблицы. --------------------
|
||||||
|
|||||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
Теперь понятно.
Может так - http://grails.org/doc/latest/guide/6.%20Th...ayer.html#6.2.5 Sitemesh Content Blocks? Добавлено через 5 минут и 59 секунд Еще можно подумать над реализацией самого тега в grails и там контролировать, что и когда рендерить. |
|||
|
||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
Да. Блоки тут не подойдут наверное. Можно пошаманить над реализацией тега таблицы и там контролировать.
Еще можно попробовать реализовать на jsp и использовать в gsp - http://grails.org/doc/latest/guide/6.%20Th...ayer.html#6.3.6 Using JSP Tag Libraries. Других вариантов не знаю. Лучше, наверное, сделать свои шаблоны на каждый случай. |
|||
|
||||
4eJIoBekMoJIekyJIa |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
ясн, спасибо за ответ.
--------------------
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Groovy & Grails | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |