如何使用命名 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 映射从控制器重定向?的主要内容,如果未能解决你的问题,请参考以下文章