有时,当执行数据绑定时,它可能不会将一种指定的String转换为指定的目标类型.
你会得到类型转换错误. Grails 会保留类型转换错误在Grails domain 类的 errors 属性中 .
例如这里:class Book {
…
URL publisherURL
}
这里,我们有一个Bookdomain 类 ,它使用Java的java.net.URL来表示 URLs.现在,我们有一个像这样的请求参数:/book/save?publisherURL=a-bad-url
在这种情况下,它不可能将 字符串a-bad-url 绑定到 publisherURL 属性上,一个类型匹配错误会发生.
你可以像这样来检查它们:def b = new Book(params)
if(b.hasErrors()) {
println "The value ${b.errors.getFieldError('publisherURL').rejectedValue} is not a valid URL!"
}
虽然,我们没有覆盖错误代码 (更多信息查看 Validation), 你需要的类型转换错误的错误消息在grails-app/i18n/messages.properties 内.
你可以使用像下面这样的普通错误消息来处理 :
typeMismatch.java.net.URL=The field {0} is not a valid URL