【发布时间】:2013-12-10 13:40:57
【问题描述】:
我知道可以这样做:
带有操作栏的控制器 foo 可以通过 (1) 访问:
/appname/foo/bar
它可以使用 URL 映射重写 - 例如:
"/foobar/foo/$action"(controller: "foo")
然后通过(2)访问它:
/appname/foobar/foo/bar
但仍然可以通过 (1) 访问它。这当然是因为默认的 URL 映射:
"/$controller/$action?/$id?"()
但我宁愿不删除它,因为这基本上意味着我必须手动将映射写入遵循默认模式的每个其他控制器/动作。
是否可以在不使用 URL 映射的情况下获取特定控制器/操作(如 (2))的 url 模式?如果没有,是否有一种简单的方法可以从默认映射闭包中“排除”控制器?
【问题讨论】:
-
我想我明白你在追求什么,蹄子。我认为您无法按照自己的意愿准确地实现它。默认的 /$controller/$action/$id 映射必须变为 /
/$action/$id where = "foo"。脖子有点痛,但实际上我必须做类似的事情。您的另一种选择是保留默认的 Grails 规则,并在需要打破该规则的所有内容前面加上路径中的某些内容。 -
好吧。后一个建议-“您的另一个选择是保留默认的 Grails 规则,并在需要破坏该规则的所有内容前面加上路径中的某些内容”-您将如何做到这一点?我想保留默认的 URL 映射,但为某些只能在前缀内访问的控制器打破它......例如foo 控制器只能通过 foobar/foo 访问 :)
-
我将用一些示例代码发布答案。我不完全理解你的要求,但我会告诉你我的意思。
标签: grails url-mapping