从控制器传递的gsp参数

Som*_*Guy 12 grails groovy gsp

如何通过不是域类实例的控制器将参数传递给groovy服务器页面?

Mar*_*cel 22

您将参数放入返回到GSP的模型对象图中,例如:

def index = { def hobbies = ["basketball", "photography"] 
render(view: "index", model: [name: "Maricel", hobbies: hobbies]) }
Run Code Online (Sandbox Code Playgroud)

然后,您将获得通过模型映射中使用的名称访问它们的值,例如:

My name is ${name} and my hobbies are:
<ul>
<g:each in="${hobbies}" var="hobby">
<li>${hobby}</li>
</g:each>
</ul>
Run Code Online (Sandbox Code Playgroud)

这应该显示以下内容:

My name is Maricel and my hobbies are:

 - basketball
 - photography
Run Code Online (Sandbox Code Playgroud)


Mar*_*Dow 8

最明确的方法可能是从控制器动作返回一个地图:

...
def myAction = {
    [myGreeting: "Hello there, squire!"]
}
...
Run Code Online (Sandbox Code Playgroud)

现在您可以在GSP页面中访问该参数(默认为myAction.gsp):

...
<p><%= myGreeting %></p>
...
Run Code Online (Sandbox Code Playgroud)

更多细节:http: //grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.1.3%20Models%20and%20Views


小智 6

你可以这样做:

在控制器中:

def myaction = {
    String name = "Tony Danza"
    [name: name]
}
Run Code Online (Sandbox Code Playgroud)

在gsp页面中,您可以像这样查看名称:

<body>
    My name is ${name}
</body>
Run Code Online (Sandbox Code Playgroud)


Nav*_*avi 0

您在与 gsp 同名的控制器闭包中返回参数。