久久久久久久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成人精品一区在线播放 | 国产黄在线观看 | 精品免费观看 | 日本在线精品 | 欧美一区二区在线观看 | 中文字幕在线观看一区二区 | 成年人午夜视频 | 亚洲在线视频观看 | 少妇高潮av久久久久久 | 无套内谢的新婚少妇国语播放 | 免费看黄色一级片 | 亚洲欧美日韩一区二区三区四区 | 免费看毛片网站 | 91av免费 | 天堂免费av | www.日本高清 | 欧美不卡在线观看 | 中文亚洲字幕 | 久久99国产精品 | 人人插人人射 | 色噜噜狠狠一区二区三区 | 国产成人精品毛片 | 日韩av网站在线观看 | www.99色| 午夜激情福利 | 日韩免费一区二区 | 欧美一区二区三 | 亚洲 欧美 综合 | 四虎影院网站 | 一级黄色小视频 | 日韩中文字幕一区二区三区 | 国产精品一二三区 | 精品综合网 | 黄片毛片在线观看 | 国产激情一区二区三区 | 国产7777 | 亚洲在线视频观看 | 国产精品入口夜色视频大尺度 | 欧美综合在线观看 | 91最新网站 |