Grails数据绑定字段排除
我正在使用Grails2.5,并在请求方法中使用Grails数据绑定。Grails数据绑定字段排除,grails,data-binding,Grails,Data Binding,我正在使用Grails2.5,并在请求方法中使用Grails数据绑定。 对于这种情况的一个基本例子考虑如下: 域类 class Product { String field1 String privateField } 控制器 class ProductController { def update(Product productInstance) { productInstance.save() } } 如果我将现有产品传递给控制器,如 {"id":3, "pri
对于这种情况的一个基本例子考虑如下: 域类
class Product {
String field1
String privateField
}
控制器
class ProductController {
def update(Product productInstance) {
productInstance.save()
}
}
如果我将现有产品传递给控制器,如
{"id":3, "privateField":"newValue","field1":"whatever"}
privateField
的旧值被覆盖。我想强制执行,privateField
从不从请求绑定,并避免检查字段是否脏。Grails中是否有实现这一点的机制
如果我必须执行脏检查,如何丢弃新值并使用旧值?您可以强制执行绑定的值,但您需要更改方法签名以获得对流程的更多控制
您可以强制绑定哪些值,但需要更改方法签名以获得对流程的更多控制 非常确定存在“可绑定”约束。
应防止该字段自动绑定。非常确定存在“可绑定”约束。
应防止该字段自动绑定。只是猜测,“最终”是否有效?似乎setter不会生成,所以它不会绑定?我仍然希望能够以编程方式修改字段,我只是不想阻止绑定。只是猜测,“final”会起作用吗?似乎setter不会生成,所以它不会绑定?我仍然希望能够以编程方式修改字段,我只是不想阻止绑定。
class ProductController {
def update() {
def productInstance = Product.get(params.id)
bindData(productInstance, params, [exclude: ['privateField']]
productInstance.save()
}
}
class Product {
String field1
String privateField
static constraints = {
privateField bindable: false
}
}