2013-03-19 43 views
3

我有这样的GWT方法:如何通过javascript对象到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等字段值?

+0

请在此处添加答案,以便将来有所帮助。 – 2013-03-19 08:16:13

回答

6

如果我理解正确的问题,我会使用的覆盖类型,是这样的:

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