Frage

Es gibt einige URLs wie:

http://localhost:9000/images/111111.jpg
http://localhost:9000/images/222222.png
http://localhost:9000/images/333333.gif

Sie werden einer Methode zugeordnet:

def showImage(id: String) = Action {
    val image = Image.findById(id).get
    Ok.sendFile(new File(image.path)
}

Notiere dass der id ist der einzige Teil des Dateinamens, der in der URL gezeigt wurde: 111111, 222222, 333333

Also schreibe ich eine Zuordnung in Routen:

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

In dem Teil $id<\w+>.*, id entspricht der ID, und .* Passen Sie das Suffix an, das ignoriert wird.

Die Syntax ist jedoch falsch, die Fehlermeldung lautet:

Identifier expected

Wie man es repariert?

War es hilfreich?

Lösung

Es ist derzeit nicht möglich, dies mit Play 2 zu tun. Als Problemumgehung können Sie Ihr Argument in der Controller -Aktion verarbeiten:

GET    /images/:id       controllers.Images.showImage(id)
def showImage(idWithExt: String) = Action {
  val id = idWithExt.takeWhile(_ != '.')
  ...
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top