grails命令对象深度数据绑定
我有两个域对象和一个命令,看起来像grails命令对象深度数据绑定,grails,Grails,我有两个域对象和一个命令,看起来像 class Vendor { String phoneNumber public String toString() { """[phoneNumber: "${phoneNumber ?: ''}"]""" } } class Product { String productNumber Vendor vendor public String toString() { ""
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"]
当我检查产品时,我看到如下情况:
<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能够在多个级别上进行数据绑定吗?如果是这样的话,谁能看出我做错了什么?如果没有,有人能提供解决方法吗?是的,命令对象绑定可以使用任意深度的嵌套路径。您的应用程序中可能有打字错误或其他问题,但活页夹确实支持您所说的内容
请参阅上的示例应用程序。如果您在默认索引页上提交表单,您将看到这两个属性都已正确绑定。仅考虑此处显示的代码,这是没有意义的。混合中肯定还有其他问题。如果查询cmd.errors和cmd.product.errors,您可能会发现一些有趣的东西。