GWT-Hashmap响应为空?
我有一个自定义模型,它在内部使用GWT-Hashmap响应为空?,gwt,Gwt,我有一个自定义模型,它在内部使用HashMap来存储数据 public class SearchScreenConfigModel extends DefaultDataModel implements Serializable{ private static final long serialVersionUID = 1L; private ArrayList<DefaultGridColumnModel> defaultGridColumnModels; private En
HashMap
来存储数据
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");
}
公共类SearchScreenConfigModel扩展DefaultDataModel实现可序列化{
私有静态最终长serialVersionUID=1L;
私有ArrayList defaultGridColumnModels;
私人实体TBL模型实体TBL模型;
私有DefaultGridColumnModel DefaultGridColumnModel;
公共列表getDefaultGridColumnModels(){
返回get(“defaultGridColumnModels”);
}
public void setDefaultGridColumnModels(列出defaultGridColumnModels){
设置(“defaultGridColumnModels”,defaultGridColumnModels);
}
公共字符串getScreenName(){
返回获取(“屏幕名称”);
}
公共void设置屏幕名称(字符串值){
设置(“屏幕名称”,值);
}
公共字符串getIcon(){
返回获取(“图标”);
}
公共无效设置图标(字符串图标){
设置(“图标”,图标);
}
公共无效设置entityTbl(entityTbl模型entityTbl){
集合(“entityTbl”,entityTbl);
}
public entitytbl模型getEntityTbl(){
return get(“entityTbl”);
}
}
公共类DefaultDataModel实现DataModel,可序列化{
私有静态最终长serialVersionUID=1L;
私有哈希映射;
受保护的布尔AllowentsTedValues;
公共DefaultDataModel(){
}
公共DefaultDataModel(映射属性){
超级();
设置属性(属性);
}
@抑制警告(“未选中”)
@凌驾
公共X获取(字符串属性){
if(map==null)
返回null;
return(X)map.get(property);
}
@凌驾
公共映射getProperties(){
if(map!=null)
返回图;
返回新的HashMap();
}
@凌驾
公共集合getPropertyNames(){
Set=newhashset();
if(map!=null)
set.addAll(map.keySet());
返回集;
}
@抑制警告(“未选中”)
@凌驾
公共X删除(字符串属性){
if(map==null)
返回null;
返回(X)映射。删除(属性);
}
@抑制警告(“未选中”)
@凌驾
公共X集(字符串属性,X值){
if(map==null)
map=新的HashMap();
return(X)map.put(属性、值);
}
公共void集合属性(映射属性){
for(字符串属性:properties.keySet())
set(property,properties.get(property));
}
}
我从服务器端设置数据(原语和用户定义的对象-可序列化)并发送回客户端
在从服务器返回之前,映射具有数据
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");
}
一旦在客户端接收到模型,hashmap就为null
任何人请帮帮我。你不能使用
对象。这可能解释了为什么您无法在客户机中获取数据。您需要将其重写为所有子类型都可以序列化的类型。这也是对象的问题。GWT为可序列化对象的所有子类型生成代码,因为在编译时它不知道在运行时使用哪个子类型。对于对象,这将意味着基本上所有类,这将意味着生成的代码的巨大开销,这些代码可能永远不会被使用。如果没有实际的代码片段,很难判断。