4

在为我已经删除的 REST 服务创建一个简单的客户端时,我注意到 smartGWT 的 RestDataSource 类在它可以理解的 xml 类型方面受到限制。所有 REST 资源必须使用以下格式的 XML 进行响应。

<response>
    <status>0</status>
    <startRow>0</startRow>
    <endRow>10</endRow>
    <totalRows>50</totalRows>
    <data>
        <record>
            <someField>value</someField>
            <someOtherField>value</someOtherField>
        </record>
        <record>
            <someField>value</someField>
            <someOtherField>value</someOtherField> 
        </record>
        ...
    </data>
</response>

..唯一的变体是 someField/someOtherField 标签。

这种结构只不过是名称/值对,对我们不起作用。

然后我在 SmartGWT 展示中看到了这个演示......

http://www.smartclient.com/smartgwtee/showcase/#data_integration_server_rss

这显示了如何以任意格式使用 xml 进行显示,如下所示......

package com.smartgwt.sample.showcase.client.webservice;  

import com.smartgwt.client.data.DataSource;  
import com.smartgwt.client.data.fields.DataSourceTextField;  
import com.smartgwt.client.data.fields.DataSourceLinkField;  
import com.smartgwt.client.widgets.Canvas;  
import com.smartgwt.client.widgets.grid.ListGrid;  
import com.smartgwt.sample.showcase.client.PanelFactory;  
import com.smartgwt.sample.showcase.client.ShowcasePanel;  

public class RssSample implements EntryPoint {  

    public void onModuleLoad() {  
        DataSource dataSource = new DataSource();  
        dataSource.setDataURL("http://rss.slashdot.org/Slashdot/slashdot");  
        dataSource.setRecordXPath("//default:item");  

        DataSourceTextField titleField = new DataSourceTextField("title", "Title");  
        DataSourceLinkField linkField = new DataSourceLinkField("link", "Link");  

        dataSource.setFields(titleField, linkField);  

        ListGrid grid = new ListGrid();  
        grid.setAutoFetchData(true);  
        grid.setHeight(200);  
        grid.setWidth100();  
        grid.setDataSource(dataSource);  

        grid.draw();  
    }  

}  

这对 GET 很有效,但是 PUT、POST 和 DELETE 呢?

任何人都可以分享一些代码或指向一个资源来演示如何从 SmartGWT 客户端执行其他 RESTful 操作吗?

谢谢

4