如何通过不属于域类实例的控制器将参数传递给groovy服务器页面?
答案 0 :(得分:22)
将参数放入返回GSP的模型对象图中,例如:
def index = { def hobbies = ["basketball", "photography"]
render(view: "index", model: [name: "Maricel", hobbies: hobbies]) }
然后,您将获得通过模型映射中使用的名称访问它们的值,例如:
My name is ${name} and my hobbies are:
<ul>
<g:each in="${hobbies}" var="hobby">
<li>${hobby}</li>
</g:each>
</ul>
那应该显示以下内容:
My name is Maricel and my hobbies are:
- basketball
- photography
答案 1 :(得分:8)
最明确的方法可能是从控制器操作中返回一个地图:
...
def myAction = {
[myGreeting: "Hello there, squire!"]
}
...
现在您可以在GSP页面中访问该参数(默认为myAction.gsp):
...
<p><%= myGreeting %></p>
...
此处有更多详情: http://grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.1.3%20Models%20and%20Views
答案 2 :(得分:6)
你可以这样做:
在控制器中:
def myaction = {
String name = "Tony Danza"
[name: name]
}
在gsp页面中,您可以像这样查看名称:
<body>
My name is ${name}
</body>
答案 3 :(得分:0)
返回控制器闭包中与gsp同名的参数。