久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何將 Double 參數與 Play 2.0 路由綁定

How to bind Double parameter with Play 2.0 routing(如何將 Double 參數與 Play 2.0 路由綁定)
本文介紹了如何將 Double 參數與 Play 2.0 路由綁定的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在學習自己的 Play 2.0(使用 Java API)并希望有一個 double/float 參數(用于位置坐標),例如 http://myfooapp.com/events/find?latitude=25.123456&longitude=60.251253.

I'm learning myself Play 2.0 (Java API used) and would like to have a double/float parameter (for location coordinates), something like http://myfooapp.com/events/find?latitude=25.123456&longitude=60.251253.

我可以通過獲取參數作為字符串并在控制器等處解析它們來做到這一點,但是我可以在這里使用自動綁定嗎?

I can do this by getting the parameters as String and parsing them at controller etc but can I use automatic binding here?

現在,我首先嘗試簡單地設置一個雙精度值:

Now, I first tried simply having one double value:

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

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

我得到的是沒有為 Double 類型找到 QueryString 綁定器.嘗試為此類型實現隱式 QueryStringBindable."

我是否錯過了已經提供的內容或我是否必須制作一個解析 Double 的自定義 QueryStringBindable?

Have I missed something already provided or do I have to make a custom QueryStringBindable that parses Double?

我在 http://julien.richard-foy.fr/blog/2012/04/09/how-to-implement-a-custom-pathbindable-with-play-2/

我在包活頁夾中實現了 DoubleBinder:

I implemented DoubleBinder at package binders:

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;
    }
}

并嘗試將其添加到 project/Build.scala 的 main 中:

And tried to add it to project/Build.scala's main:

routesImport += "binders._"

但結果相同:找不到類型 Double.... 的 QueryString 綁定器"

but same result : "No QueryString binder found for type Double...."

  • 我還將路由簽名更改為 java.lang.Double,但這也無濟于事
  • 我還更改了 DoubleBinder 以使用 Double & 實現 play.api.mvc.QueryStringBindable(而不是 play.mvc.QueryStringBindable).java.lang.Double 在路由簽名處,但仍然沒有幫助

推薦答案

目前(在 Play 2.0 中),Java binders 僅適用于自遞歸類型.也就是說,類型如下所示:

Currently (in Play 2.0), Java binders only work with self-recursive types. That is, types looking like the following:

class Foo extends QueryStringBindable<Foo> {
  …
}

所以,如果你想為 java.lang.Double 定義一個 binder,它是 Java 的現有類型,你需要將它包裝在一個自遞歸類型中.例如:

So, if you want to define a binder for java.lang.Double, which is an existing type of Java, you need to wrap it in a self-recursive type. For example:

package util;

public class DoubleW implements QueryStringBindable<DoubleW> {

    public Double value = null;

    @Override
    public Option<DoubleW> bind(String key, Map<String, String[]> data) {
        String[] vs = data.get(key);
        if (vs != null && vs.length > 0) {
            String v = vs[0];
            value = Double.parseDouble(v);
            return F.Some(this);
        }
        return F.None();
    }

    @Override
    public String unbind(String key) {
        return key + "=" + value;
    }

    @Override
    public String javascriptUnbind() {
         return value.toString();
    }

}

然后你可以在你的應用程序中使用它:

Then you can use it as follows in your application:

GET    /foo     controllers.Application.action(d: util.DoubleW)

public static Result action(DoubleW d) {
      …
}

這篇關于如何將 Double 參數與 Play 2.0 路由綁定的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Why does the android emulator camera stop unexpectedly?(為什么android模擬器相機會意外停止?)
Android camera , onPictureTaken(byte[] imgData, Camera camera) method amp; PictureCallback never called(Android camera , onPictureTaken(byte[] imgData, Camera camera) 方法 amp;PictureCallback 從未調用過) - IT屋-程序員軟件開發技
Understanding the libGDX Projection Matrix(了解 libGDX 投影矩陣)
QR code reading with camera - Android(使用相機讀取二維碼 - Android)
IP camera with OpenCv in Java(Java中帶有OpenCv的IP攝像頭)
Android mock Camera(Android 模擬相機)
主站蜘蛛池模板: 91亚洲精品在线 | 国产精品a一区二区三区网址 | 少妇特黄a一区二区三区88av | 亚洲一区亚洲二区 | 日韩在线中文 | 日韩一区二区三区视频 | 成人精品在线观看 | 午夜精品一区二区三区在线视频 | www.色.com| 夏同学福利网 | 日本成人中文字幕 | 精品国产乱码久久久久久影片 | 欧美日韩中文字幕 | 久久精品视频一区二区 | 亚洲视频中文 | 久久91 | 欧美成人精品激情在线观看 | 国产一区二区三区四区五区加勒比 | 视频1区 | 久久99国产精一区二区三区 | 免费观看av | 爱综合| 不卡欧美 | 麻豆国产一区二区三区四区 | 久久久久久久久久久91 | 久久一 | 久久毛片| av一区二区三区四区 | 三级成人在线 | 日本一区二区三区在线观看 | 成年视频在线观看福利资源 | 亚洲国产aⅴ精品 | 国产亚洲精品精品国产亚洲综合 | 男人的天堂久久 | 97偷拍视频 | 黄色综合 | 国产精品美女视频 | 香蕉大人久久国产成人av | 日韩一区二区福利视频 | 久久中文字幕一区 | 日韩一区二区三区在线 |