Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails在2.2.1升级到2.3.6后运行app命令对象不工作_Grails_Grails Controller - Fatal编程技术网

Grails在2.2.1升级到2.3.6后运行app命令对象不工作

Grails在2.2.1升级到2.3.6后运行app命令对象不工作,grails,grails-controller,Grails,Grails Controller,在将Grails2.2.1升级到2.3.6之后,我遇到了下一个问题 我认为控制器中的任何命令对象都不工作,例如: 我有这样的命令对象: @ToString @grails.validation.Validateable class ListUserRoleCommand { String userId User getUser() { User.get(userId) } static constraints = { userId nullable: f

在将Grails2.2.1升级到2.3.6之后,我遇到了下一个问题 我认为控制器中的任何命令对象都不工作,例如: 我有这样的命令对象:

@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"] }
应该绑定请求:我的app/user/4324gf54f4f34r3ff/role和controller UserRoleController中的command对象以及“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
grails.databinding.useSpringBinder = false
所以这不是空刺的问题。 有人能帮忙吗

编辑1:

再想想。如果我在Config.groovy中设置:

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

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

编辑2:

我注意到命令对象绑定了部分数据。 我也注意到,绑定的这部分数据是从post数据提交的,但提交的这部分数据是从url中丢失的(url映射url参数,如$id)

编辑3: 对于上述内容: 我在网上看到一些帖子,人们说:

parseRequest


从Urlmapping在GRILS2.3.x中不再起作用。这是真的吗?我该怎么处理呢?

我无法重现您所描述的内容。在我刚刚创建的一个示例应用程序中,所有这些都可以正常工作。如果您在提交JIRA并附加一个简单的示例应用程序,我们将进行查看。