有些网址如下:
http://localhost:9000/images/111111.jpg
http://localhost:9000/images/222222.png
http://localhost:9000/images/333333.gif
它们将映射到方法:
def showImage(id: String) = Action {
val image = Image.findById(id).get
Ok.sendFile(new File(image.path)
}
请注意,id
是网址中显示的文件名的唯一部分:111111
,222222
,333333
所以我在路线中写了一个映射:
GET /images/$id<\w+>.* controllers.Images.showImage(id)
在$id<\w+>.*
部分中,id
与ID匹配,.*
匹配将被忽略的后缀。
但语法不正确,错误信息为:
Identifier expected
如何解决?
答案 0 :(得分:5)
目前无法通过Play 2执行此操作。作为一种解决方法,您可以在控制器操作中处理您的参数:
GET /images/:id controllers.Images.showImage(id)
def showImage(idWithExt: String) = Action { val id = idWithExt.takeWhile(_ != '.') ... }