如何使用命名 URL 映射从控制器重定向?

Posted

技术标签:

【中文标题】如何使用命名 URL 映射从控制器重定向?【英文标题】:How to redirect from a controller using a named URL mapping? 【发布时间】:2011-04-21 18:27:40 【问题描述】:

我有一个如下的 URL 映射:

static mappings = 
        name register: "/register" 
            controller = "account"
            action = "createuser"
        

我想使用来自控制器的此映射进行重定向,例如:

redirect mapping:'register'

不幸的是,与createLink标签库不同,redirect似乎不接受mapping作为输入参数。

所以我的问题是:如何使用我的命名 URL 映射进行重定向?

【问题讨论】:

很好奇为什么你需要通过映射 vs 重定向来做到这一点(controller:'account', action:'createUser') 因为,如果我更改我的寄存器映射,我将不必更改代码,而只需更改 url 映射。此外,代码更具可读性 【参考方案1】:

您可以将两者结合起来:

redirect url: createLink(mapping: 'register')

【讨论】:

如果应用程序名称(例如在 application.properties 中设置的 app.name)是 url 的一部分,那么您需要将参数 absolute: true 添加到 createLink 调用,以避免应用程序在结果重定向中出现两次(例如localhost:8080/myapp/myapp/register)

以上是关于如何使用命名 URL 映射从控制器重定向?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 $.get() 检测服务器重定向

使用“RedirectToAction”从控制器重定向到哈希

如何在 IOS 应用程序中从视图控制器重定向回主故事板

Cakephp 内部从控制器重定向到另一个控制器

从 ASP.NET MVC 控制器重定向到外部 URI

Javascript发布请求回调,从.NET MVC控制器重定向