我有一个Grails应用程序,我想在URL中放入一个包含轮胎尺寸信息的参数。轮胎尺寸信息如下:“225 / 60R18 104Y”。斜杠不是路径分隔符,幸运的是,Grails足够聪明,可以将其编码为/ foo / 225%2F60R18 + 104Y。但是,实际上调用此URL不起作用。我得到一个空白页,没有错误或任何东西。将%2F转换为斜杠会给我一个错误页面(预期),并将其留下来让我找到正确的控制器和操作,但是错误的大小信息。
那么这里的问题是什么?为什么Grails不能解决这个问题,有什么方法可以解决这个问题吗?
更新:看起来Apache和Tomcat都是罪魁祸首。 Apache可能会通过添加AllowEncodedSlashes NoDecode
来表现,但现在我必须弄清楚如何让Tomcat接受它。
答案 0 :(得分:1)
在URL Mapping中的参数之后添加**
为我工作。
例如,将'/foo/$tire'
更改为'/foo/$tire**'
答案 1 :(得分:-1)
假设您将轮胎尺寸读为params.id
,则可以使用Grails编解码器:
def tireSize = params.id.decodeURL()
此致 Deluan