为什么在Grails 3.3.3上重定向动作也传递HTML表单参数?

时间:2018-04-04 14:01:28

标签: grails grails-3.3

我有一个带有几个控制器的简单Grails Web应用程序。 所有这些都适用于grails 3.2.6,但升级到Grails 3.3.3后,我注意到HTML表单后期操作有一个奇怪的行为。

例如,对于名为Subscriber的域对象,在编辑我在浏览器导航栏上看到的实例后:

subscriber/show/16?_method=PUT&version=2&username=test[......]

控制器片段(标准脚手架控制器)是

@Transactional
def update(Subscriber subscriber) {
    if (subscriber == null) {
        transactionStatus.setRollbackOnly()
        notFound()
        return
    }

    if (subscriber.hasErrors()) {
        transactionStatus.setRollbackOnly()
        respond subscriber.errors, view:'edit'
        return
    }

    subscriber.save(flush:true)

    request.withFormat {
        form multipartForm {
            flash.message = message(code: 'default.updated.message', args: [message(code: 'subscriber.label', default: 'Subscriber'), subscriber.id])
            redirect subscriber
        }
        '*'{ respond subscriber, [status: OK] }
    }
}

1 个答案:

答案 0 :(得分:1)

这是一个已修复的错误,修复程序应包含在Grails 3.3.4中。

请参阅https://github.com/grails/grails-core/issues/10965