如何在UrlMappings.groovy中以Url模式转义#符号?

时间:2011-04-27 06:08:02

标签: grails groovy escaping urlmappings.groovy

为了在项目中维护当前的Url集合,我必须能够在Url中使用(井号)。出于某种原因,在UrlMappings.groovy的这个项目中,井号似乎不能正常工作。

UrlMappings.groovy 中放置#符号时是否必须使用特殊的转义序列

我错过了为什么人们根本不能使用英镑符号的原因?

在以下URL Mapping示例中,浏览器转到正确的页面,但pageName变量为null:

"/test/${urlName}#/overview"(controller:'test', action:'overview') {
    pageName = "overview"
}

2 个答案:

答案 0 :(得分:3)

我认为在网址中的#之后的所有内容都将在浏览器的客户端处理,它会尝试查找并滚动到该位置。

如果你转储包含pound char的请求,你甚至会看到#?

背后的数据

答案 1 :(得分:0)

我使用了命名的URL映射,它工作正常,无需转义“#”符号:

name test: "/#abc" (controller: 'test', action:'homepage')

编辑:我的上述答案错误。实际上,当主页是视图的默认操作时,它属于特殊情况。

Netbrain是对的,“#”之后的路径永远不会发送到服务器。相反,我发现可以使用“%23”而不是“#”。请查看here

例如,我们应该使用/test#/abc作为URL映射(在客户端和服务器端),而不是/test%23/abc