質問

次のようなURLがいくつかあります。

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 urlに示されているファイル名の唯一の部分です。 111111, 222222, 333333

だから私はルートでマッピングを書きます:

GET  /images/$id<\w+>.*          controllers.Images.showImage(id)

パートで $id<\w+>.*, id IDと一致しています .* 無視される接尾辞を一致させます。

ただし、構文は間違っています。エラーメッセージは次のとおりです。

Identifier expected

それを修正する方法は?

役に立ちましたか?

解決

現在、プレイ2でそれを行うことはできません。回避策として、コントローラーアクションで引数を処理できます。

GET    /images/:id       controllers.Images.showImage(id)
def showImage(idWithExt: String) = Action {
  val id = idWithExt.takeWhile(_ != '.')
  ...
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top