我有一个“事物”域类,其中每个事物都有一个记录号(不是自动生成的 id),用户将使用它来访问事物:
class Thing {
...
String recordNumber
...
}
有一种形式可以查找事物,知道它的记录编号:
<g:form action="search">
<input name="recordNumber">
<g:submitButton name="btn" value="go to this Thing"/>
</g:form>
我想在这个表单中使用一个验证过程:如果没有找到记录号(Thing.findByRecordNumber(recordNumber) == null
),那么输入字段必须变成红色,并且工具提示必须显示错误消息“找不到记录号”。
据我所知/阅读(我是 grails 菜鸟),这必须写为 Thing 类中的约束:
static constraints = {
recordNumber validator: { n -> Thing.findByRecordNumber(recordNumber) }
}
问题是:我在这个表单中没有要填充的所有“事物”属性,只有 recordNumber 一个,所以我不能调用
new Thing(params).validate()
如何仅对一个字段而不是整个对象调用验证?