为了在项目中维护当前的Url集合,我必须能够在Url中使用#(井号)。出于某种原因,在UrlMappings.groovy的这个项目中,井号似乎不能正常工作。
在 UrlMappings.groovy 中放置#符号时是否必须使用特殊的转义序列?
我错过了为什么人们根本不能使用英镑符号的原因?
在以下URL Mapping示例中,浏览器转到正确的页面,但pageName变量为null:
"/test/${urlName}#/overview"(controller:'test', action:'overview') {
pageName = "overview"
}
答案 0 :(得分:3)
我认为在网址中的#之后的所有内容都将在浏览器的客户端处理,它会尝试查找并滚动到该位置。
如果你转储包含pound char的请求,你甚至会看到#?
背后的数据答案 1 :(得分:0)
我使用了命名的URL映射,它工作正常,无需转义“#”符号:
name test: "/#abc" (controller: 'test', action:'homepage')
编辑:我的上述答案错误。实际上,当主页是视图的默认操作时,它属于特殊情况。
Netbrain是对的,“#”之后的路径永远不会发送到服务器。相反,我发现可以使用“%23”而不是“#”。请查看here。
例如,我们应该使用/test#/abc
作为URL映射(在客户端和服务器端),而不是/test%23/abc
。