我使用的是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
答案 0 :(得分:0)
你可以通过
抓住控制器中的“经销商”地图def dealerMap = params["dealer"]
然后手动创建经销商命令opject并将地图内容绑定到它。
def dealerCommand = new DealerCommand()
bindData(dealerCommand , dealerMap)
然后您可以正常使用命令对象的验证
答案 1 :(得分:0)
支持带有命令对象前缀的数据绑定属性:
对于命令:
class DealerCommand {
String name
Map dealer = [:]
}
名为'name','dealer','dealer.name'和'dealer.dealer'的属性将正确绑定到命令对象。
http://grails.org/doc/2.3.x/guide/single.html#commandObjects