2012-03-16 16 views
5

Utilizzo di play framework 2.0 in modalità Java e voglio passare un elenco di stringhe a un controller utilizzando i parametri URL.Come passare un elenco di stringhe

dato un URL, ad esempio:

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

voglio chiamare il mio controller metodo:

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

Il mio file rotte simile a questa:

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

Ma doesn' lavoro. Ottengo degli errori sostenendo che non esiste alcun binder QueryString per List [String]. Questo non mi sembra giusto in quanto si trattava di funzionalità piuttosto standard nella versione precedente. Qualcuno sa come posso passare una lista di stringhe al controller usando un progetto Java?

risposta

7

Per ora si possono recuperare dalla stringa di query:

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

Aggiornamento: Un elenco legante has been added, quindi si può solo scrivere le seguenti:

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

Assicurarsi che il percorso definizione simile al seguente:

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

Ho aggiornato m y rispondi dal momento che il raccoglitore di liste è ora integrato –

Problemi correlati