升级2.2.1到2.3.6后,Grails run-app命令对象无法正常工作

时间:2014-04-23 21:10:23

标签: grails grails-controller

升级grails 2.2.1到2.3.6之后我遇到了下一个问题 我认为控制器中的任何Command对象都不起作用,例如: 我有这样的命令对象:

@ToString
@grails.validation.Validateable
class ListUserRoleCommand {
    String userId
    User getUser() { User.get(userId) }

    static constraints = {
        userId nullable: false
        user nullable: false
    }
}

我在UrlMapping.groovy中有条目:

"/user/$userId/role"(controller: "userRole", parseRequest: true) { action = [GET: "list", POST: "save"] }

那个shoud绑定请求:my-app / user / 4324gf54f4f34r3ff / role与控制器UserRoleController中的命令对象和'list'动作(我正在发送GET方法) 但我在userId上获得验证异常。

Field error in object 'pl.fissst.invoice.security.ListUserRoleCommand' on field 'userId': rejected value [null]

我打印到控制台的params,我有正确的数据:

params: [userId:ff808181458ff92401458ff94e150005, action:[GET:list, POST:save], controller:userRole, start:0, end:24, count:25, sort:[:], filter:[:]]

我检查了应用程序中的其他部分,我认为其他命令对象也不起作用。 我在Config.groovy中有这些条目:

grails.databinding.convertEmptyStringsToNull = false
grails.databinding.trimStrings = false

所以这不是空刺的问题。 有人可以帮忙吗?

EDIT1:

还有一个想法。如果我在Config.groovy中设置:

grails.databinding.useSpringBinder = false

应用程序启动几乎正常。现在只有一些命令不起作用。但是,如果我将grails.databinding.useSpringBinder设置为true,我认为任何命令对象都不会出错。

为什么部分命令对象停止工作?

EDIT2:

我注意到命令对象绑定了部分数据。 我也注意到,这个被绑定的数据部分来自后期数据,但这部分内容正在从网址中丢失(Urlmapping url params,如$ id)

EDIT3: 对于上述: 我在网上看,我找到了一些人们说的话:

  

parseRequest

来自Urlmapping的

在grils 2.3.x中不再起作用。真的吗 ?我该怎么处理?

0 个答案:

没有答案