Domanda

Ci sono alcuni URL come:

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

Si verrà mappato a un metodo:

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

Si noti che il id è l'unica parte del nome del file mostrato in url: 111111, 222222, 333333

Così scrivo una mappatura in percorsi:

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

Nella parte $id<\w+>.*, id sta abbinando l'id, e .* abbinare il suffisso che verrà ignorato.

Ma la sintassi non è corretta, il messaggio di errore è:

Identifier expected

Come risolvere il problema?

È stato utile?

Soluzione

Al momento non è possibile farlo con Play 2. Come soluzione alternativa è possibile elaborare il tuo argomento nella azione di controllo:

GET    /images/:id       controllers.Images.showImage(id)
def showImage(idWithExt: String) = Action {
  val id = idWithExt.takeWhile(_ != '.')
  ...
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top