我遇到的情况是我需要重用一个包含在withForm
闭包中的功能的动作。
提交表单时一切正常,但当我尝试以其他方式重用该操作时,我会从浏览器中获得重定向错误。具体来说,我需要将另一个操作重定向到它,可能用chain
调用它,我也想从超链接中调用它。
我真的想避免创建冗余操作或让invalidToken
闭包执行相同的代码。我试图找到关于withForm
如何工作的更多细节,并找出如果没有令牌传递给闭包但是谷歌让我失望的情况会发生什么。
这可能吗?我试图让它做不了的事情吗?
更多信息:
我有一个用户编辑控制器动作。它包含withForm闭包。有三种不同的情况我需要调用此控制器来呈现用户编辑页面:
答案 0 :(得分:0)
如果您的代码在多个地方使用,则控制器操作不是放置它的最佳位置。我建议你将这段代码移到service并从两个动作中调用它。
答案 1 :(得分:0)
这是我的解决方案。如果有人对解决此问题的其他方法有所了解,请提供帮助。我确定我不是唯一遇到此问题的人。
答案是在很大程度上要归功于@ Sergio的回应。它比我想象的要简单得多。我创建了没有withForm
的编辑操作,然后从包含withForm
中的编辑操作的其他操作中调用它。
def editWT(Long uid, Long pid){
withForm{
edit(uid, pid)
}
}
def edit(Long uid, Long pid){
// Do lots of stuff to prep the data for rendering the view
}
这个答案不是创新或突破性的,但它有效。我希望这有助于其他人。