문제

이 urlmapping이 주어지면 :

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

이 컨트롤러와 결합 :

class FooController {
    def foo = {
        def foobar = params.foobar
        println "foobar=" + foobar
    }
}

그리고 이러한 요청으로 :

Grails가 첫 번째 점 ( ".")에서 "foobar"매개 변수를 자르는 것처럼 보입니다. 이것은 의도적입니까? URL 매핑에 도트가 포함 된 매개 변수를 사용하려면 해결 방법이 있습니까?

도움이 되었습니까?

해결책

설정으로 해결할 수 있습니다 ...

grails.mime.file.extensions = false

... config.groovy에서.

Grails가 파일 이름 접미사를 기반으로 장면 뒤에서 Mime Magic을 만들려고하는 것처럼 보입니다.

업데이트 : 몇 가지 추가 정보 지라를 성배합니다.

이것은 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"의 값을 반환합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top