我有一个应用程序,它有一些控制器,视图和布局。我基本上试图将一些数据从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>
.......
然后当我运行应用程序时,我可以看到打印数据没有问题但是没有数据传递给视图,这是因为有一个布局正在使用?如果是这样我怎么绕这个?我是否会访问元对象?在此先感谢: - )
答案 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 ] )