gpt4 book ai didi

grails - 参数值包含 “.”的Grails UrlMappings

转载 作者:行者123 更新时间:2023-12-02 13:50:19 25 4
gpt4 key购买 nike

鉴于此UrlMapping:

"/foo/$foobar" {
controller = "foo"
action = "foo"
constraints {
}
}

与此 Controller 结合:
class FooController {
def foo = {
def foobar = params.foobar
println "foobar=" + foobar
}
}

并满足以下要求:
  • http://localhost:8080/app/foo/example.com给出输出“foobar = example”
  • http://localhost:8080/app/foo/examplecom给出输出“foobar = examplecom”

  • 似乎Grails在第一个点(“。”)处削减了“foobar”参数。这是故意的吗?如果要在URL映射中使用包含点的参数,是否有解决方法?

    最佳答案

    这可以通过设置...

    grails.mime.file.extensions = false

    ...在Config.groovy中。

    看来Grails试图根据文件名后缀在幕后做一些MIME魔术。

    更新:来自 Grails 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()返回在Config.groovy中配置的“grails.mime.file.extensions”设置的值。

    关于grails - 参数值包含 “.”的Grails UrlMappings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/615425/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com