Grails - 渲染模型和变量

时间:2011-05-26 19:15:02

标签: grails controller gsp

通过控制器向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 个答案:

答案 0 :(得分:3)

在您的示例中,您应该能够编写如下内容:

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

默认情况下,Grails视图会自动从相关操作中获取变量返回值。这是通过映射视图路径 - 控制器/操作名称自动完成的。

如果你打电话给“渲染”,那就有点不同了。您可以渲染任何可能与您的控制器/操作无关的视图。我建议只在需要时使用它。

答案 1 :(得分:1)

您的代码看起来正确。这会将模型中的var发送到gsp,但如果您想将其发送到remoteFunction中的javascript,则需要使用grails.converters.JSON作为下一个:

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