2012-03-16 10 views
5

Uso de play framework 2.0 en modo Java y quiero pasar una lista de cadenas a un controlador usando los parámetros de URL.Cómo pasar una lista de cadenas

Dado un enlace como:

http://localhost:9000/echo?messages=hello&messages=world 

Quiero llamar a mi controlador de método:

public static Result echo(List<String> messages){ 
    return ok("Size: " + messages.size()); 
} 

Mi archivo de rutas es el siguiente:

GET  /echo    controllers.Application.echo(messages: List[String]) 

Pero doesn' t trabajo. Recibo errores que afirman que no existe un enlazador QueryString para List [String]. Esto no me parece correcto ya que era una funcionalidad bastante estándar en la versión anterior. ¿Alguien sabe cómo puedo pasar una lista de cadenas al controlador usando un proyecto Java?

Respuesta

7

Por ahora se puede recuperarlos de la cadena de consulta:

public static Result echo(){ 
    String[] messages = request().queryString().get("messages"); 
    return ok("Size: " + messages.length); 
} 

Actualización: Una lista ligante has been added, por lo que sólo puede escribir lo siguiente:

public static Result echo(List<String> messages) { 
    return ok("Size:" + messages.size()); 
} 

Asegúrese de que su ruta la definición es similar a la siguiente:

GET /echo  controllers.Application.echo(messages: java.util.List[String]) 
+0

He actualizado m y responda ya que la lista de carpetas ahora está incorporada –

Cuestiones relacionadas