你也可以这样做:
一个控制器..
// grails-app/controllers/com/demo/DemoController.groovy
package com.demo
class DemoController {
def createPerson(Person p) {
render "First Name: ${p.firstName}, Last Name: ${p.lastName}"
}
}
class Person {
String firstName
String lastName
}
一个服务...
// grails-app/services/com/demo/MyConfigurationService.groovy
package com.demo
class MyConfigurationService {
def initializePerson(Person p) {
p.firstName = 'Default First Name'
p.lastName = 'Default Last Name'
}
}
一个绑定监听器...
// src/groovy/com/demo/PersonBindingListener.groovy
package com.demo
import org.grails.databinding.events.DataBindingListenerAdapter
class PersonBindingListener extends DataBindingListenerAdapter {
def configService
Boolean beforeBinding(Object target, Object errors) {
configService.initializePerson target
true
}
boolean supports(Class<?> clazz) {
clazz == Person
}
}
注册监听器 bean...
// grails-app/conf/spring/resources.groovy
beans = {
myListener(com.demo.PersonBindingListener) {
configService = ref('myConfigurationService')
}
}