我有一个带有几个控制器的简单 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] }
}
}