Grails scaffolding feature is a great asset for quickly generating create/read/update/delete (CRUD) screens for your domain classes. Create an entity, create a controller and put static scaffold on top. For various types of properties within your domain class a suitable (HTML) input is used, to take the user’s input: booleans become checkboxes, associations with other domain classes become (depending on ownership and constraints) e.g. dropdowns or multi-selects, etc.
Even an enum works out of the box as one could imagine
This post serves as a small quicktip – primarily for me and other developers looking for these kind of things – of internationalizing scaffolded screens in general and enums in particular using toString() and Spring’s MessageSourceResolvable.
Take the following Product with a Status:
class Product {
enum Status {
AVAILABLE, SOLD_OUT
}
String name
Status status
static constraints = { name blank: false, unique: true }
}
class ProductController {
def scaffold = true
}
Opening up our /product/create url will show what you would expect.
