Grails - рендеринг модели и переменной - PullRequest
1 голос
/ 26 мая 2011

Как правильно передать модель в GSP через контроллер, но также предоставить переменную. У меня есть тот, который не является частью модели, но также должен быть обработан GSP.

С чего я начал:

def index = {
      render controller:"test", action:"index", model:[user:user]  
}

Для примера - как я его модифицировал (неправильно) я думаю

def index = {
      def url = "http://www.stackoverflow.com"
      render controller:"test", action:"index", model:[user:user, testvar: url]  
}

Ответы [ 2 ]

3 голосов
/ 27 мая 2011

В вашем примере вы должны написать что-то вроде этого:

def index = {
      def url = "http://www.stackoverflow.com"
      return [user:user, testvar: url]  
}

По умолчанию представление Grails автоматически получит переменные, возвращаемые соответствующим действием. Это делается автоматически путем отображения пути просмотра - контроллера / имени действия.

Если вы называете «рендер», это немного по-другому. Вы можете визуализировать любой вид, который не связан с вашим контроллером / действием. Я рекомендую использовать его только при необходимости.

1 голос
/ 08 июля 2014

Ваш код выглядит правильно. Это отправит переменную модели в gsp, но если вы хотите отправить ее в javascript, как в remoteFunction, вам нужно использовать grails.converters.JSON как следующее:

render [var1:value1, var2,value2, ...] as JSON
...