杯UrlMappings的参数值包含"."
-
03-07-2019 - |
题
鉴于这UrlMapping:
"/foo/$foobar" {
controller = "foo"
action = "foo"
constraints {
}
}
结合这个控制器:
class FooController {
def foo = {
def foobar = params.foobar
println "foobar=" + foobar
}
}
以及与这些请求:
- http://localhost:8080/app/foo/example.com 给输出"foobar=例"
- http://localhost:8080/app/foo/examplecom 给输出"foobar=examplecom"
这似乎是技术发展的看法削减"foobar"参数在第一dot(".").这是故意的?是有一个工作周围如果我想要使用的参数包含点在我的网址映射?
解决方案
这是可以解决的。
grails.mime.file.extensions = false
...在配置。常规。
这似乎是技术发展的看法是试图做一些MIME的魔法背后的场景基础上的文件名称后缀。
更新: 一些额外的信息,从的 杯JIRA.
这是违规的代码中UrlMappingsFilter.java:
if(WebUtils.areFileExtensionsEnabled()) {
String format = WebUtils.getFormatFromURI(uri);
if(format!=null) {
MimeType[] configuredMimes = MimeType.getConfiguredMimeTypes();
// only remove the file extension if its one of the configured mimes in Config.groovy
for (MimeType configuredMime : configuredMimes) {
if (configuredMime.getExtension().equals(format)) {
request.setAttribute(GrailsApplicationAttributes.CONTENT_FORMAT, format);
uri = uri.substring(0, (uri.length() - format.length() - 1));
break;
}
}
}
}
WebUtils.areFileExtensionsEnabled()返回的价值"杯.mime。文件。扩展的"的设置配置配置。常规。
不隶属于 StackOverflow