2009-03-05 14 views
1

はこのUrlMappingを考える:"。"を含むパラメータ値を持つGrails UrlMappings

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

そして、これらの要求を持つ:

Grailsが最初のドット( "。")で "foobar"パラメータを切っているようです。これは意図的ですか? URLマッピングでドットを含むパラメータを使用したい場合は回避策がありますか?

答えて

4

これはConfig.groovyに... ...

grails.mime.file.extensions = false 

を設定することで解決することができます。

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" の値を返します。

関連する問題