【问题标题】:How to pass javascript object to GWT method and parse result如何将 javascript 对象传递给 GWT 方法并解析结果
【发布时间】:2013-03-19 07:09:49
【问题描述】:

我有这个 GWT 方法:

public static native JavaScriptObject getJsValue() /*-{
    var res = $wnd.product; 
    return res;
}-*/;

这是 HTML/JS 部分:

<script type="text/javascript" language="javascript">
    var product = products({id:1}).first(); 
</script> 
<!-- GWT -->
<script type="text/javascript" language="javascript" src="app/app.nocache.js"></script> 

对象 product 在 Firebug 中看起来像这样:

Object { id=1, categoryid=0, name="Sample Product", more...}

之后,

Object obj = getJsValue();  // what cast? 

但是,如何解析结果值以获取产品 ID 等字段值?

【问题讨论】:

  • 请在此处添加答案,以便日后有所帮助。

标签: java javascript gwt jsni


【解决方案1】:

如果我正确理解了这个问题,我会使用覆盖类型,例如:

public class ProductJso extends JavaScriptObject {
  protected ProductJso() {}
  public final native int getId() /*-{ 
    return this.id;
  }-*/;
  public final native int getCategoryId() /*-{
    return this.categoryid;
  }-*/;
  public final native String getName() /*-{
    return this.name;
  }-*/;
  // And so on...
}

然后修改您的JSNI 以返回实际的JSO 类型

public static native ProductJso getJsValue() /*-{
  return $wnd.product; 
}-*/;

你明白了,另见https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsOverlay?hl=it#example-json

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-27
    • 2016-02-21
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多