Edit the generated Grails domain and controller classes. This will add fields and validation rules to the domain classes, and activate scaffolding in the controller classes. Grails' scaffolding automatically generates a controller and JSP pages that work with the associatd domain class.
First add a first name, last name, created, and list of addresses to Person
.
By assigning the hasMany
field to [addresses:Address]
,
this creates a relationship to Address
with an addresses
list variable. The constraints
section is where validation rules can be set.
All the fields are set to not allow null
values.
Edit grails-app/domain/Person.groovy to match the code below.
Example 1. Person
class Person { String firstName String lastName List<Address> addresses Date created static hasMany = [addresses:Address] static constraints = { firstName(nullable:false) lastName(nullable:false) created(nullable:false) } }
Next, add the basic fields to Address
and define that it
is the many part of a one-to-many relationship to Person
by assigning the belongsTo
field to Person
.
Edit grails-app/domain/Address.groovy to match the code below.
Example 2. Address
class Address { String address String city String state String zipPostal String country Date created static belongsTo = Person static constraints = { address(nullable:false) city(nullable:false) state(nullable:false) zipPostal(nullable:false) country(nullable:false) created(nullable:false) } }
Now that the domain objects are setup, the controllers will be set to use
Grails' scaffolding. This will autogenerate the controller interface and
basic JSP pages. The scaffold
variable just needs to be
set to true
and Grails will handle everything else.
The PersonController
is automatically associated with the
Person
domain class based on default naming conventions.
Edit grails-app/controllers/PersonController.groovy to match the code below.
Activate scaffolding for the AddressController
.
Edit grails-app/controllers/AddressController.groovy to match the code below.