Data binding Grails数据绑定
我需要将请求参数绑定到以下Java类getter和setter的实例:Data binding Grails数据绑定,data-binding,grails,groovy,Data Binding,Grails,Groovy,我需要将请求参数绑定到以下Java类getter和setter的实例: public class ShippingHouse { private String name; private String description; private List<ShippingRule> shippingRules = new ArrayList<ShippingRule>(); } public class ShippingRule {
public class ShippingHouse {
private String name;
private String description;
private List<ShippingRule> shippingRules = new ArrayList<ShippingRule>();
}
public class ShippingRule {
private ShippingHouse shippingHouse;
private String name
}
但这似乎不会在每个ShippingRule中设置对所属ShippingHouse的引用。有没有一种方法可以自动绑定它,或者我必须自己编写代码?如果您想实现两个类之间的1:N关系,应该使用正确的grails方法。大概是这样的:
class ShippingHouse {
String name
String description
static hasMany = [shippingRules: ShippingRule]
}
class ShippingRule {
String name
static belongsTo = [shippingHouse: ShippingHouse]
}
请注意,分号是无用的,类字段上的私有声明是隐式的。如果要在两个类之间实现1:N关系,应该使用正确的grails方法。大概是这样的:
class ShippingHouse {
String name
String description
static hasMany = [shippingRules: ShippingRule]
}
class ShippingRule {
String name
static belongsTo = [shippingHouse: ShippingHouse]
}
请注意分号是无用的,类字段的私有声明是隐式的。Don
您将需要编写代码来使用BindUsing或其他方法自己完成。活页夹不应该也不应该假设从父对象到子对象的任何反向引用。如果这些是GORM实体并且关系是显式的,那就不同了,但是在您的情况下,绑定器不应该假设ShippingRule类中的shippingHouse属性与shippingHouse类中的shippingRules属性有任何关系
还要注意lucke84说你的隐私是隐式的。如果要删除它们,请确保您理解这意味着什么。如果删除它们,编译器将为这些属性生成公共getter和setter方法,这可能是您想要的,也可能不是您想要的
您将需要编写代码来使用BindUsing或其他方法自己完成。活页夹不应该也不应该假设从父对象到子对象的任何反向引用。如果这些是GORM实体并且关系是显式的,那就不同了,但是在您的情况下,绑定器不应该假设ShippingRule类中的shippingHouse属性与shippingHouse类中的shippingRules属性有任何关系
还要注意lucke84说你的隐私是隐式的。如果要删除它们,请确保您理解这意味着什么。如果您删除它们,编译器将为这些属性生成公共getter和setter方法,这可能是您想要的,也可能不是您想要的。我不能像hasMany和belongsTo那样使用GORM概念,因为类是Java类。我不能像hasMany和belongsTo那样使用GORM概念,因为类是Java类