2012-03-16 17 views
5

Korzystanie z ram gry 2.0 w trybie Java i chcę przekazać listę ciągów do kontrolera przy użyciu parametrów URL.Jak przekazać listę ciągów znaków

Biorąc URL, takich jak:

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

chcę zadzwonić mojego kontrolera metoda:

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

Mój plik trasy wygląda następująco:

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

Ale to nie robi” t działa. Dostaję błędy, twierdząc, że nie ma żadnego QueryStringa dla listy [String]. Nie wydaje mi się to właściwe, ponieważ była to dość standardowa funkcjonalność w poprzedniej wersji. Czy ktoś wie, jak mogę przekazać listę ciągów do kontrolera za pomocą projektu Java?

Odpowiedz

7

Na razie można pobrać je z łańcucha zapytania:

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

Aktualizacja: listę spoiwa has been added, więc można po prostu napisać co następuje:

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

Pamiętaj trasy definicja wygląda następująco:

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

I zaktualizowano m y odpowiedź, ponieważ teraz wbudowano segregatora –

Powiązane problemy