Grails 版本 >= 2.3
Config.groovy 中的设置定义了在将参数绑定到 Date 时将在应用程序范围内使用的日期格式
grails.databinding.dateFormats = [
'MMddyyyy', 'yyyy-MM-dd HH:mm:ss.S', "yyyy-MM-dd'T'hh:mm:ss'Z'"
]
grails.databinding.dateFormats 中指定的格式将按照它们包含在列表中的顺序进行尝试。
您可以使用 @BindingFormat 为单个命令对象覆盖这些应用程序范围的格式
import org.grails.databinding.BindingFormat
class Person {
@BindingFormat('MMddyyyy')
Date birthDate
}
Grails 版本
我不能也不会相信手动提取日期是必要的!
你的固执得到了回报,早在 Grails 1.3 之前就可以直接绑定日期。步骤是:
(1)创建一个为您的日期格式注册编辑器的类
import org.springframework.beans.PropertyEditorRegistrar
import org.springframework.beans.PropertyEditorRegistry
import org.springframework.beans.propertyeditors.CustomDateEditor
import java.text.SimpleDateFormat
public class CustomDateEditorRegistrar implements PropertyEditorRegistrar {
public void registerCustomEditors(PropertyEditorRegistry registry) {
String dateFormat = 'yyyy/MM/dd'
registry.registerCustomEditor(Date, new CustomDateEditor(new SimpleDateFormat(dateFormat), true))
}
}
(2)通过在grails-app/conf/spring/resources.groovy中注册以下bean,让Grails知道这个日期编辑器
beans = {
customPropertyEditorRegistrar(CustomDateEditorRegistrar)
}
(3) 现在,当您以 yyyy/MM/dd 格式在名为 foo 的参数中发送日期时,它将自动绑定到名为 foo 的属性,使用以下任一方式:
myDomainObject.properties = params
或
new MyDomainClass(params)