data-binding - Grails 数据绑定(bind)

标签 data-binding grails groovy

我需要将请求参数绑定(bind)到以下 Java 类的实例(省略 getter 和 setter):

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
}

请注意,ShippingHouse 之间存在 1:N 的关系。和 ShippingRule , 但每个 ShippingRule还引用了 ShippingHouse那个拥有它。

如果这些是 Grails 命令/域类,我会将它们与请求参数绑定(bind)
name=foo&description=bar&shippingRules[0].name=sr0&shippingRules[1].name=sr1

但似乎这不会将引用设置为拥有 ShippingHouse在每个 ShippingRule .有没有办法可以自动绑定(bind)它,或者我必须自己编写代码?

最佳答案

大学教师,

您需要使用 BindUsing 或其他方法自己编写代码。活页夹不(也不应该)假设任何关于从 parent 到 child 的反向引用。如果这些是 GORM 实体并且关系是明确的,那就不同了,但是在您的情况下,绑定(bind)器不应假定 ShippingRule 类中的 shippingHouse 属性与 ShippingHouse 类中的 shippingRules 属性有任何关系。

另请注意,lucke84 表示您的“私有(private)”是隐含的。如果要删除它们,请确保您了解这意味着什么。如果您删除它们,编译器将为这些属性生成公共(public) getter 和 setter 方法,这可能是您想要的,也可能不是。

关于data-binding - Grails 数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6580155/

相关文章:

jquery - 当contentType为application/json时可以访问请求参数

testing - 使用 groovy 使 soapUI 测试用例失败但不中止

java - 使用 Gradle maxParallelForks 属性执行并行测试

javascript - Aurelia 单向绑定(bind)到复选框

c# - 将 MenuItems 命令绑定(bind)到 UserControls DataContext

javascript - 将数组传递给 $watchGroup 并在更改时更新数组

groovy - 任务的 gradle 配置

javascript - 在angularJS中加载页面时隐藏数据绑定(bind)

grails - 在Grails 3中参数化UrlMappings

hibernate - hibernate grails顺序更改结果数