grails create-controller book8.1.1 Understanding Controllers and Actions
Version: 3.3.2
8.1.1 Understanding Controllers and Actions
Creating a controller
Controllers can be created with the create-controller or generate-controller command. For example try running the following command from the root of a Grails project:
The command will create a controller at the location grails-app/controllers/myapp/BookController.groovy:
package myapp
class BookController {
    def index() { }
}where "myapp" will be the name of your application, the default package name if one isn’t specified.
BookController by default maps to the /book URI (relative to your application root).
| The create-controllerandgenerate-controllercommands are just for convenience and you can just as easily create controllers using your favorite text editor or IDE | 
Creating Actions
A controller can have multiple public action methods; each one maps to a URI:
class BookController {
    def list() {
        // do controller logic
        // create model
        return model
    }
}This example maps to the /book/list URI by default thanks to the property being named list.
The Default Action
A controller has the concept of a default URI that maps to the root URI of the controller, for example /book for BookController. The action that is called when the default URI is requested is dictated by the following rules:
- 
If there is only one action, it’s the default 
- 
If you have an action named index, it’s the default
- 
Alternatively you can set it explicitly with the defaultActionproperty:
static defaultAction = "list"