GWT 异步回调中的 Hashmap 为空
Hashmap is empty on GWT async callback
服务器端,我构造一个java.util.Hashmap,用值填充它(键和值都是字符串)并通过异步回调将它传回客户端。返回客户端时为空
我可以使用仅在服务器端一个地方使用的全新哈希图来复制它。 Java6 和 GWT 2.7
服务器端服务:
public class Service extends RemoteServiceServlet implements IService {
public Model buildModel() {
Model model = new Model();
model.addItemToMyMap("key", "value");
return model;
}
}
型号:
public class Model implements Serializable {
private Map<String, String> myMap = new HashMap<String, String>();
public void addItemToMyMap(String key, String value) {
if(key != null) {
myMap.put(key, value);
}
}
public Map<String, String> getMyMap() {
return myMap;
}
}
异步接口:
public interface IServiceAsync {
public void buildModel(AsyncCallback<Model> callback); {
}
客户端:
service.buildModel(new AsyncCallback<Model>() {
public void onSuccess(Model model) {
logger.warning(model.getMyMap().size());
}
public void onFailure(Throwable caught) {
logger.warning("ERROR!");
}
}
问题已解决。 Eclipse 保存操作使地图最终化,从而阻止了序列化。当我删除 final 修饰符(并阻止 Eclipse 将其添加回来)时,我能够在客户端看到地图的内容。
服务器端,我构造一个java.util.Hashmap,用值填充它(键和值都是字符串)并通过异步回调将它传回客户端。返回客户端时为空
我可以使用仅在服务器端一个地方使用的全新哈希图来复制它。 Java6 和 GWT 2.7
服务器端服务:
public class Service extends RemoteServiceServlet implements IService {
public Model buildModel() {
Model model = new Model();
model.addItemToMyMap("key", "value");
return model;
}
}
型号:
public class Model implements Serializable {
private Map<String, String> myMap = new HashMap<String, String>();
public void addItemToMyMap(String key, String value) {
if(key != null) {
myMap.put(key, value);
}
}
public Map<String, String> getMyMap() {
return myMap;
}
}
异步接口:
public interface IServiceAsync {
public void buildModel(AsyncCallback<Model> callback); {
}
客户端:
service.buildModel(new AsyncCallback<Model>() {
public void onSuccess(Model model) {
logger.warning(model.getMyMap().size());
}
public void onFailure(Throwable caught) {
logger.warning("ERROR!");
}
}
问题已解决。 Eclipse 保存操作使地图最终化,从而阻止了序列化。当我删除 final 修饰符(并阻止 Eclipse 将其添加回来)时,我能够在客户端看到地图的内容。