(Quick Reference)

params

Purpose

A mutable multi-dimensional map (hash) of request (CGI) parameters.

Examples

To obtain a request parameter called id:

class BookController {
    def show() {
        def book = Book.get(params.id)
    }
}

To perform data binding (see {grailsdocs}guide/theWebLayer.html#dataBinding[data binding] in the user guide):

def save() {
    def book = new Book(params) // bind request parameters onto properties of book
}

Description

The standard Servlet API provides access to parameters with the HttpServletRequest object. Although Grails provides the same capability through the {controllersRef}/request.html[request] object, it goes a bit further by providing a mutable map of request parameters called params.

The params object can be indexed into using the array index operator or de-reference operator, so given the URL /hello?foo=bar you can access foo with

println params.foo

The params object can also be used to bind request parameters onto the properties of a domain class using either the constructor or the {grailsdocs}ref/Domain%20Classes/properties.html[properties] property:

def book = new Book(params)
book = Book.get(1)
book.properties = params

For further reading see {grailsdocs}guide/theWebLayer.html#dataBinding[data binding] in the user guide.