私は内部でHashMap<String, Object>
を使用してデータを保存するカスタムモデルを持っています。GWT - 応答でハッシュマップがnullですか?
public class SearchScreenConfigModel extends DefaultDataModel implements Serializable{
private static final long serialVersionUID = 1L;
private ArrayList<DefaultGridColumnModel> defaultGridColumnModels;
private EntityTblModel entityTblModel;
private DefaultGridColumnModel defaultGridColumnModel;
public List<DefaultGridColumnModel> getDefaultGridColumnModels() {
return get("defaultGridColumnModels");
}
public void setDefaultGridColumnModels(List<DefaultGridColumnModel> defaultGridColumnModels) {
set("defaultGridColumnModels", defaultGridColumnModels);
}
public String getScreenName() {
return get("screenName");
}
public void setScreenName(String value) {
set("screenName", value);
}
public String getIcon() {
return get("icon");
}
public void setIcon(String icon) {
set("icon", icon);
}
public void setEntityTbl(EntityTblModel entityTbl) {
set("entityTbl", entityTbl);
}
public EntityTblModel getEntityTbl() {
return get("entityTbl");
}
}
public class DefaultDataModel implements DataModel, Serializable {
private static final long serialVersionUID = 1L;
private HashMap<String, Object> map;
protected boolean allowNetstedValues;
public DefaultDataModel(){
}
public DefaultDataModel(Map<String, Object> properties){
super();
setProperties(properties);
}
@SuppressWarnings("unchecked")
@Override
public <X> X get(String property) {
if(map == null)
return null;
return (X)map.get(property);
}
@Override
public Map<String, Object> getProperties() {
if(map != null)
return map;
return new HashMap<String, Object>();
}
@Override
public Collection<String> getPropertyNames() {
Set<String> set = new HashSet<String>();
if(map != null)
set.addAll(map.keySet());
return set;
}
@SuppressWarnings("unchecked")
@Override
public <X> X remove(String property) {
if(map == null)
return null;
return (X) map.remove(property);
}
@SuppressWarnings("unchecked")
@Override
public <X> X set(String property, X value) {
if(map == null)
map = new HashMap<String, Object>();
return (X)map.put(property, value);
}
public void setProperties(Map<String, Object> properties){
for(String property : properties.keySet())
set(property, properties.get(property));
}
}
Iは、サーバー側からのデータを設定しています(両方のプリミティブと同様に、ユーザー定義オブジェクト - シリアライズ)し、クライアントに送り返します。
サーバーから戻る前に、マップにデータがあります。
モデルがクライアント側で受信されると、ハッシュマップはnullになります。
誰かが私を助けてください。
実際のコードスニペットなしでは伝えにくい。 – Saket
コードスニペットを追加しました –