Pregunta

Hay algunas URL como:

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

Se asignarán a un método:

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

Tenga en cuenta que el id es la única parte del nombre de archivo que se muestra en URL: 111111, 222222, 333333

Así que escribo un mapeo en rutas:

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

En la parte $id<\w+>.*, id está coincidiendo con la identificación y .* coincide con el sufijo que será ignorado.

Pero la sintaxis es incorrecta, el mensaje de error es:

Identifier expected

¿Como arreglarlo?

¿Fue útil?

Solución

Actualmente no es posible hacerlo con Play 2. Como solución puede procesar su argumento en la acción del controlador:

GET    /images/:id       controllers.Images.showImage(id)
def showImage(idWithExt: String) = Action {
  val id = idWithExt.takeWhile(_ != '.')
  ...
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top