正在发生以下问题:
def someAction() {
...
if (someCondition)
redirect action: 'index'
return
}
if (someOtherCondition)
redirect action: 'index'
return
}
...
redirect action: 'success'
}
这完美地工作。但是,一旦我将其包装在交易中:
def someAction() {
MyDomainClass.withTransaction { status ->
if (someCondition)
status.setRollbackOnly()
redirect action: 'index'
return
}
if (someOtherCondition)
status.setRollbackOnly()
redirect action: 'index'
return
}
...
}
redirect action: 'success'
}
这会导致抛出异常:
无法在此处发出重定向(..)。响应已经通过另一个重定向或直接写入响应提交。堆栈跟踪如下:消息:无法在此处发出重定向(..)。响应已经通过另一个重定向或直接写入响应提交。
奇怪的是我在另一段代码中做了完全相同的事情,而且效果很好。唯一的区别是我是链接而不是重定向。我已经尝试在上面的代码中链接,但它仍然抛出异常。