how can i pass parameters to a groovy server page via a controller that are not an instance of a domain class ?
            Asked
            
        
        
            Active
            
        
            Viewed 3.0k times
        
    4 Answers
22
            
            
        You put your parameters into the model object map returned to your GSP, for example:
def index = { def hobbies = ["basketball", "photography"] 
render(view: "index", model: [name: "Maricel", hobbies: hobbies]) }
Then you get those values accessing them by the name you use in your model map, for example:
My name is ${name} and my hobbies are:
<ul>
<g:each in="${hobbies}" var="hobby">
<li>${hobby}</li>
</g:each>
</ul>
That should display the following:
My name is Maricel and my hobbies are:
 - basketball
 - photography
        Maricel
        
- 2,089
 - 13
 - 17
 
8
            
            
        The clearest way is probably to return a map from your controller action:
...
def myAction = {
    [myGreeting: "Hello there, squire!"]
}
...
Now you can access that parameter in your GSP page (by default myAction.gsp):
...
<p><%= myGreeting %></p>
...
More details here: http://grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.1.3%20Models%20and%20Views
        Martin Dow
        
- 5,273
 - 4
 - 30
 - 43
 
7
            
            
        You can do it like this :
In the controller:
def myaction = {
    String name = "Tony Danza"
    [name: name]
}
In the gsp page you can view the name like so:
<body>
    My name is ${name}
</body>
        OverZealous
        
- 39,252
 - 15
 - 98
 - 100
 
        Thando
        
- 71
 - 1
 
0
            
            
        You return the parameters in the closure of the controller that has the same name as the gsp.
        Navi
        
- 8,580
 - 4
 - 34
 - 32