在视图上访问时,传递给view的Grails Controller数据为null?

时间:2012-10-30 12:59:19

标签: grails controller null viewdata

我有一个应用程序,它有一些控制器,视图和布局。我基本上试图将一些数据从Controller传递给视图。有问题的视图使用布局文件夹中名为main.gsp的布局。所以我使用下面的代码尝试将数据传递给视图:

def index = {

        String test = "Testing"
                println(test)
        render(view:"index", name: test)
    }

然后在视图上看起来像这样:

<html>

<head>
    <title>My App</title>
    <meta name="layout" content="main" />
</head>

<body>

        <h1>${name}</h1>
.......

然后当我运行应用程序时,我可以看到打印数据没有问题但是没有数据传递给视图,这是因为有一个布局正在使用?如果是这样我怎么绕这个?我是否会访问元对象?在此先感谢: - )

2 个答案:

答案 0 :(得分:4)

试试这个:

def index = {
    String test = "Testing"
    println(test)
    [name: test]
}

这将按惯例呈现您的index视图。

从您的控制器中,您必须将model(地图)传递给您的视图。

现在,您可以在视图中使用返回地图的元素:

<h1>${name}</h1>

有关详细信息,请参阅docs

答案 1 :(得分:1)

来自aiolos的示例是正确的,但是当您确实需要将方法render()与模型中的某些数据一起使用时,您必须通过以下方式调用它:

render( view:'index', model: [ 'name':test ] )