Grails UrlMappings的参数值包含“”

Grails UrlMappings的参数值包含“”,grails,friendly-url,url-mapping,Grails,Friendly Url,Url Mapping,鉴于此URL映射: "/foo/$foobar" { controller = "foo" action = "foo" constraints { } } 与此控制器结合使用: class FooController { def foo = { def foobar = params.foobar println "foobar=" + foobar } } 根据这些要求: 给出输出foobar=example

鉴于此URL映射:

"/foo/$foobar" {
    controller = "foo"
    action = "foo"
    constraints {
    }
}
与此控制器结合使用:

class FooController {
    def foo = {
        def foobar = params.foobar
        println "foobar=" + foobar
    }
}
根据这些要求:

给出输出foobar=example 给出输出foobar=examplecom
Grails似乎在第一个点切割foobar参数。。这是故意的吗?如果我想在URL映射中使用包含点的参数,是否有解决方法?

这可以通过设置

grails.mime.file.extensions = false
。。。在Config.groovy中

Grails似乎正试图在基于文件名后缀的场景背后实现一些MIME魔术

更新:来自网站的一些附加信息

这是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.arefileextensionEnabled返回在Config.groovy中配置的grails.mime.file.extensions设置的值