Controller - redirect

Summary

Demo

  • 在一个Action中直接跳转到另外一个Action中,另外的Action接受一个opportunity对象,这里直接通过id传过去就行,约定规则,就可以获取对应内容。
redirect controller: "opportunity", action: "show", id: opportunityContract.opportunity.id

Demo

def create()
{
params['targetUri'] = request.getHeader("referer")
respond new RightCertification(params)
}
  • 然后 RightCentification 的 Create 页面,放到表单里面,再传递给后面Save Action:
<g:hiddenField name="targetUri" value="${params?.targetUri}"></g:hiddenField>
  • 最后 RightCentification 的 Save Action 就可以直接跳转回Opportunity的show.gsp页面
redirect url: params['targetUri']

Demo

  • 在使用 redirect 方法返回错误信息。
  • 如果让 URL 产生变化,且有问题的对象信息也返回去,就得用 message。
if (workflowTypeTeam.hasErrors())
{
transactionStatus.setRollbackOnly()
def error = workflowTypeTeam.errors.allErrors.first()
flash['message'] = message(code: error.defaultMessage.toString(), args: error.arguments)
redirect(action:'create')
return
}

Demo

  • 直接跳转到另外一个Action,params 中会拼到目标的URL上,类似浏览器使用 GET 方式访问了目标 Action。
redirect(action: 'create', params: [workflowTypeTeam: workflowTypeTeam])
posted @   duchaoqun  阅读(375)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示