Grails UrlMappings的参数值包含“”
鉴于此URL映射: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
"/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设置的值