【问题标题】:Grails - rendering a model and a variableGrails - 渲染模型和变量
【发布时间】:2011-05-26 19:15:01
【问题描述】:

通过控制器将模型提供给 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]  
}

【问题讨论】:

  • 你测试过你的修改版本吗?因为那应该可以正常工作。在 GSP 中使用 ${testvar} 应显示为 http://www.stackoverflow.com
  • 我今天早上吃了哑药。我的简单示例有效。为简洁起见,我省略了更多代码。这个问题与其他事情有关。是否有一些关于将多个项目传递给模型的文档。在我的 Grails 书中找不到任何内容。我只是在尝试 testvar 时猜测。
  • 好吧,我想这可以作为其他人找到的示例。现在要离开电脑休息一下。在我问其他问题之前给大脑充电。

标签: grails controller gsp


【解决方案1】:

在你的例子中,你应该可以这样写:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 2016-05-22
      • 2011-03-14
      • 1970-01-01
      • 2012-04-16
      • 2012-07-18
      • 1970-01-01
      相关资源
      最近更新 更多