DISABILITARE ADBLOCK

ADBlock sta bloccando alcuni contenuti del sito

ADBlock errore

Itinerari play2: come abbinare una parte dell'URL

StackOverflow https://stackoverflow.com/questions/9312148

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?

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(_ != '.')
  ...
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow