Grails url中的斜杠编码问题

Grails url中的斜杠编码问题,grails,Grails,我对url中的斜杠编码有问题 问题: 来自GSP页面中的请求: 我得到: 在Internet浏览器的地址行中 问题在于将字符从“/”编码到“%2F”。 说明: 这是我的gsp文件中的链接: 单击后,请求转到控制器: def show ={ def page = Page.findByUrl( params.url ) //it works } 然后我在我的网络浏览器里找到了gsp页面。一切正常,我得到了要求的页面,但在Internet浏览器的地址行中,我看到: 没有字符“/

我对url中的斜杠编码有问题

问题:
来自GSP页面中的请求:

我得到:

在Internet浏览器的地址行中

问题在于将字符从“/”编码到“%2F”。

说明:
这是我的gsp文件中的链接:

单击后,请求转到控制器:

def show ={
    def page = Page.findByUrl( params.url ) //it works
}

然后我在我的网络浏览器里找到了gsp页面。一切正常,我得到了要求的页面,但在Internet浏览器的地址行中,我看到:

没有字符“/”,而是编码“%2F

动机
我想将UrlMapping.groovy中的url设置为:

"/${url}" (controller:"page", action:"show")

并获得:

但是编码字符“/”有问题

完成
你能帮我吗?


非常感谢Tom

您需要在grails中解码Url


将“%2F”替换为“/”并不困难,但是url映射存在问题。 转换在Grails标记CreateLink中
见资料来源。正如Aaron Saunders在上面告诉我的那样,有两个包含字符串的方法encodeAsURL()。 例如,您只能编写自己的标记并使用字符串方法replaceAll(“%F2”和“/”),并且它可以工作

我在Internet浏览器的地址行中获得了所需的url:

我将MappingURL.groovy中的替换为:

嗯,我必须在控制器中使用通配符和其他脏代码。 这不是一个好代码

现在我知道了,在params中使用斜杠(/)不是个好主意,就像Olexandr在上面告诉我的那样

例如,当您使用“-”或其他saveURL字符作为参数分隔符时,它可以正常工作

非常感谢各位大师


Tom

在地址行中,您将始终获得,因为您的浏览器只是对url进行编码。您可以通过使用url映射来避免这种情况,所以url通常会传递到您的控制器中(grails会自动解码url)。