13

how can i pass parameters to a groovy server page via a controller that are not an instance of a domain class ?

1

4 Answers 4

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
Sign up to request clarification or add additional context in comments.

Comments

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

Comments

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>

Comments

0

You return the parameters in the closure of the controller that has the same name as the gsp.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.