Jak powiązać parametr podwójny z routingiem Play 2.0

Uczę się gry 2.0 (używany interfejs API Java) i chciałbym mieć parametr double / float (dla współrzędnych lokalizacji), coś podobnegohttp://myfooapp.com/events/find?latitude=25.123456&longitude=60.251253.

Mogę to zrobić, pobierając parametry jako String i parsując je na kontrolerze itp., Ale czy mogę tutaj użyć automatycznego wiązania?

Teraz spróbowałem po prostu mieć jedną podwójną wartość:

<code>GET     /events/foo                 controllers.Application.foo(doublevalue: Double)
</code>

z

<code>public static Result foo(Double doublevalue) {
    return ok(index.render("Foo:" + doublevalue));
}
</code>

Mam to„Nie znaleziono spoiwa QueryString dla typu Double. Spróbuj zaimplementować niejawne QueryStringBindable dla tego typu.”

Czy przegapiłem coś już dostarczonego lub czy muszę utworzyć niestandardowy QueryStringBindable, który analizuje Double?

Znalazłem kilka instrukcji dotyczących tworzenia niestandardowego spoiwa ciągów znaków zapytania za pomocą Scala whttp://julien.richard-foy.fr/blog/2012/04/09/how-to-implement-a-custom-pathbindable-with-play-2/

Co próbowałem:

Zaimplementowałem DoubleBinder na segregatorach pakietów:

<code>import java.util.Map;
import play.libs.F.Option;
import play.mvc.QueryStringBindable;

public class DoubleBinder implements QueryStringBindable<Double>{

    @Override
    public Option<Double> bind(String key, Map<String, String[]> data) {
        String[] value = data.get(key);
        if(value == null || value.length == 0) {
            return Option.None();
        } else {
            return Option.Some(Double.parseDouble(value[0]));
        }
    }

    @Override
    public String javascriptUnbind() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String unbind(String key) {
        // TODO Auto-generated method stub
        return null;
    }
}
</code>

I próbowałem dodać go do głównego projektu / Build.scala:

<code>routesImport += "binders._"
</code>

ale ten sam wynik: „Nie znaleziono spoiwa QueryString dla typu Double ....”

Zmieniłem też podpis routingu na java.lang.Double, ale to też nie pomogłoZmieniłem także DoubleBinder, aby zaimplementował play.api.mvc.QueryStringBindable (zamiast play.mvc.QueryStringBindable) zarówno z Double & java.lang.Double przy podpisie routingu, ale bez pomocy

questionAnswers(1)

yourAnswerToTheQuestion