Я не могу заставить метод "рендеринга" контроллера grails работать с явным шаблоном - PullRequest
1 голос
/ 04 августа 2009

Я только начинаю работать с Граалем, и у меня возникла проблема.

У меня есть «контроллер» и «представление» для домашней страницы проектов (нет модели для домашней страницы)

Я назвал представление index.gsp и поместил его в каталог views / home

Однако, независимо от того, что я делаю, Grails пытается прочитать страницу "home.gsp" (а затем и home.jsp), несмотря на то, что я явно указал индекс с атрибутом "template" в вызове рендеринга.

class HomeController {
    String someparameter = "xyzzy"
    def index = { 
        render(view:"home", template:"index")  // I also tried "index.gsp" and "home/index.gsp"
    }
}

Я думаю, что я могу неправильно использовать атрибут "template", потому что я вижу его только в примерах для рендеринга шаблонов без просмотра. Однако в документации нет таких ограничений.

Есть ли способ явно указать имя шаблона? Я просто прогнулся и переименовал его в «home.gsp», но я хотел бы понять, что происходит не так.

(Домашняя страница в этом приложении не имеет «модели». Grails будет использовать контроллер, у которого есть модель. В этом примере вы можете получить доступ к «someparameter» в шаблоне gsp как $ {someparameter}.)

1 Ответ

8 голосов
/ 04 августа 2009

Я думаю, вы, возможно, неправильно поняли, что такое шаблон Grails . Думайте о шаблоне как о многократно используемом фрагменте . Шаблон - это GSP, который начинается с подчеркивания, например _menu.gsp, который вы обычно визуализируете из другого GSP с тегом, подобным <g:render template="menu"/>.

Нет смысла визуализировать и представление, и шаблон одновременно. На данный момент они взаимоисключающие.

Вы хотите реализовать макет? Если это так, см. Документы или объяснение grails.org.

По сути, в вашем представлении у вас есть тег <meta name="layout" content="main"> в теге <head/> вашего представления, который указывает, что представление будет объединено с макетом main, расположенным в grails-app/views/layouts/main.gsp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...