2011-02-08 66 views
2

我有以下URL映射:urlMapping中和文件扩展名

name a: "https://stackoverflow.com/a/$file" { 
    controller = 'attachment' 
    action = 'get' 
} 

,我想使用这样的

<g:link mapping="a" params="[file: name]">${name}</g:link> 

可能是:“myfile.pdf “

问题是,当我到达我的控制器时,Grails删除了扩展名,所以我得到

params.file = "myfile" 

在哪里,我想“myfile.pdf”能够搜索在我的域对象的完整文件名。

我已经尝试设置

grails.mime.file.extensions = false 

但是如果使用“在withFormat”我所有的控制器不工作。有没有办法,我可以找到扩展的价值?

回答

1

我有

grails.mime.file.extensions = true 

,并使用一个映射

"/excursion/$path**" { 
    controller = "excursion" 
    action = "sweet" 
} 

在控制器

def path = params.path 
    if (!FilenameUtils.getExtension(path) && request.format) { 
     path += ".${request.format}" 
    } 
+0

就像一个魅力! – sbglasius 2011-02-09 09:37:34