【发布时间】:2011-06-28 05:43:01
【问题描述】:
我正在尝试将数据从服务器转换到客户端(GXT Grid)。 在服务器端,我有一个包含数据的列表,它可以。 然后我实现 RPC 方法并假设它也可以。这是代码:
-
GWT 服务
@RemoteServiceRelativePath("gwtservice") public interface GWTService extends RemoteService { public List<WebasystProductData> getWebasystProductData(); } -
GWTServiceAsynch
public interface GWTServiceAsync { public void getWebasystProductData(AsyncCallback<List<WebasystProductData>> callback); } -
GWTServiceImpl
public class GWTServiceImpl extends RemoteServiceServlet implements GWTService { //private Map<String, WebasystProductData> productData; public List<WebasystProductData> getWebasystProductData() { WebasystConnection waConn = new WebasystConnection(); List<WebasystProductData> waPD = waConn.getWebasystProductData(); return waPD; }
然后我使用我的 beanmodel、beanmodelreader、listloader、listore 和 grid 实现代理。
...
rpc = RpcInit.initRpc();
RpcProxy<BeanModel> proxy = new RpcProxy<BeanModel>() {
@Override
public void load(Object loadConfig, AsyncCallback callback) {
rpc.getWebasystProductData(callback);
}
};
BeanModelReader reader = new BeanModelReader();
BaseListLoader loader = new BaseListLoader(proxy, reader);
ListStore<BeanModel> store = new ListStore<BeanModel>(loader);
List<ColumnConfig> col = new ArrayList<ColumnConfig>();
ColumnConfig column = new ColumnConfig();
column.setId("productIdWA");
column.setHeader("ProductID");
column.setWidth(50);
col.add(column);
column = new ColumnConfig();
column.setId("productNameWA");
column.setHeader("productName");
column.setWidth(120);
col.add(column);
column = new ColumnConfig();
column.setId("productPriceWA");
column.setHeader("productPrice");
column.setWidth(80);
col.add(column);
column = new ColumnConfig();
column.setId("categoryIdWA");
column.setHeader("categoryID");
column.setWidth(80);
column.setAlignment(HorizontalAlignment.RIGHT);
col.add(column);
当启动我的应用程序时 - 网格内没有数据。不知道是什么问题,没有错误... 假设问题出在客户端代码中
【问题讨论】:
-
你的 WebasystProductData 是一个可序列化的类吗? waConn.getWebasystProductData() 返回的 List 的实现是什么? ?