Cómo enlazar doble parámetro con enrutamiento Play 2.0
Estoy aprendiendo a mí mismo Play 2.0 (se usa Java API) y me gustaría tener un parámetro doble / flotante (para las coordenadas de ubicación), algo así comohttp://myfooapp.com/events/find?latitude=25.123456&longitude=60.251253.
Puedo hacer esto obteniendo los parámetros como Cadena y analizándolos en el controlador, etc. ¿Pero puedo usar el enlace automático aquí?
Ahora, primero intenté simplemente tener un doble valor:
<code>GET /events/foo controllers.Application.foo(doublevalue: Double) </code>
con
<code>public static Result foo(Double doublevalue) { return ok(index.render("Foo:" + doublevalue)); } </code>
Lo que obtuve fue"No se ha encontrado el archivador QueryString para el tipo Double. Intente implementar un QueryStringBindable implícito para este tipo".
¿He omitido algo que ya se proporcionó o tengo que crear un QueryStringBindable personalizado que analice el doble?
Encontré algunas instrucciones sobre cómo crear un archivador de cadenas de consulta de cadenas personalizadas con Scala enhttp://julien.richard-foy.fr/blog/2012/04/09/how-to-implement-a-custom-pathbindable-with-play-2/
Lo que intenté:Implementé DoubleBinder en las carpetas de paquetes:
<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>
Y trató de agregarlo al proyecto / Build.scala's main:
<code>routesImport += "binders._" </code>
pero el mismo resultado: "No se ha encontrado el enlazador QueryString para el tipo Double ...."
También cambié la firma de enrutamiento a java.lang.Double pero eso tampoco ayudóTambién cambié el DoubleBinder para implementar play.api.mvc.QueryStringBindable (en lugar de play.mvc.QueryStringBindable) con Double & java.lang.Double en la firma de enrutamiento pero todavía no hay ayuda