How to pass javascript object to GWT method and parse result

て烟熏妆下的殇ゞ 提交于 2020-06-12 08:53:16

问题


I have this GWT method:

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

This is the HTML/JS part:

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

The object product looks like this in Firebug:

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

After then,

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

However, how can I parse the resulting value to get the field values like the product id, etc.?


回答1:


If I have correctly understood the question, I'd use an overlay type, something like:

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

Then modify you JSNI to return the actual JSO type

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

You get the idea, see also https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsOverlay?hl=it#example-json



来源:https://stackoverflow.com/questions/15493476/how-to-pass-javascript-object-to-gwt-method-and-parse-result

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!