grails命令对象深度数据绑定

时间:2014-06-24 20:18:27

标签: grails

我有两个域对象和一个看起来像

的命令
class Vendor {
    String phoneNumber

    public String toString() {
        """[phoneNumber: "${phoneNumber ?: ''}"]"""
    }
}

class Product {
    String productNumber
    Vendor vendor

    public String toString() {
        """[productNumber: "${productNumber ?: ''}", vendor: "${vendor}"]"""
    }
}

class SaveProductCommand {
    Product product
}

我的表单看起来像:

<g:formRemote>
    <input type="text" name="product.productNumber" value="12345" />
    <input type="text" name="product.vendor.phoneNumber" value="18005551212" />
</g:formRemote>

我的控制器调用类似于:

def save(SaveProductCommand cmd) {
    // do stuff
}

当我检查产品时,我看到类似的东西:

[productNumber: "12345", vendor: "null"]

Grails能够在多个级别上进行数据绑定吗?如果是这样,谁能看到我做错了什么?如果没有,任何人都可以提供解决方案吗?

1 个答案:

答案 0 :(得分:0)

是的,命令对象绑定适用于任意深度嵌套路径。您的应用中可能有拼写错误或其他问题,但是活页夹确实支持您所说的内容。

请参阅https://github.com/jeffbrown/simplebinding处的示例应用。如果您在默认索引页面上提交表单,您将看到两个属性都已正确绑定。