0



我使用 grails 1.3.7,情况就是这样......
有一个巨大的表单,其字段有几个不同的前缀(后来用于数据绑定)并试图通过命令对象验证......但是可爱的 DOT 用于前缀让我很难过,并且无法在命令对象中正确映射名称……请问有什么建议吗?

在表单中有像这样的字段的字段:

<input name="dealer.name" value="${dealer.name}" type="text"> 

对于命令对象:

class somethingCommand {
    String name
    Map dealer = [:]
    static constraints = {
        dealer validator: {
            val, obj ->
            obj.properties["name"] != ""
        }
    }
}

如果......我们以另一种方式看待它并在传递给命令对象之前映射参数......我应该如何在不使用grails魔法的情况下将我的参数传递给命令对象?!?!?!

tnx

4

2 回答 2

0

您可以通过以下方式获取控制器中的“经销商”地图

def dealerMap = params["dealer"]

然后手动创建一个经销商命令对象并将地图内容绑定到它。

def dealerCommand = new DealerCommand() 
bindData(dealerCommand , dealerMap)

然后,您可以正常使用命令对象的验证

于 2012-01-02T14:41:11.703 回答
0

支持带有命令对象前缀的数据绑定属性:

对于命令:

class DealerCommand {
    String name
    Map dealer = [:]
}

名为“name”、“dealer”、“dealer.name”和“dealer.dealer”的属性将正确绑定到命令对象。

http://grails.org/doc/2.3.x/guide/single.html#commandObjects

于 2014-05-27T19:00:07.527 回答