Java GXT如何获取BeanModel的Map属性

Java GXT如何获取BeanModel的Map属性,java,gwt,gxt,Java,Gwt,Gxt,我有一个DTO,看起来有点像这样: class Response { Long id; Locale locale; Map<Integer,QuestionResponse> questionResponses=new HashMap<Integer,QuestionResponse>(); ... } beanModel.get("questionResponses[15].value") 从BeanModelData中的get方法可以看出,我应该

我有一个DTO,看起来有点像这样:

class Response {
  Long id;
  Locale locale;
  Map<Integer,QuestionResponse> questionResponses=new HashMap<Integer,QuestionResponse>();
  ...
}
beanModel.get("questionResponses[15].value")
BeanModelData
中的get方法可以看出,我应该能够获取映射的属性,但无法理解语法。任何帮助都将不胜感激。

一个解决方案是使用一个新模型来映射您的响应

final ListLoader<BaseListLoadResult<BeanModel>> loader = new BaseListLoader<BaseListLoadResult<BeanModel>>(
        proxy, new MyBeanModelReader());
loader.load();
new ListStore<BeanModel>(loader); //TODO

public class MyBeanModelReader implements DataReader<List<BeanModel>> {

    private BeanModelReader reader = new BeanModelReader();

    public boolean isFactoryForEachBean() {
        return reader.isFactoryForEachBean();
    }

    public List<BeanModel> read(Object loadConfig, Object data) {
        List<BeanModel> newModelsData = new ArrayList<BeanModel>();
        ListLoadResult<ModelData> models = reader.read(loadConfig, data);
        List<ModelData> modelsData = models.getData();
        for (ModelData modelData : modelsData) {
            BeanModel model = (BeanModel) modelData;
            Response response = (Response) model.getBean();
            model.set("id", response.getId());
            model.set("locale", response.getLocale());
            model.set("QuestionResponse15", response.getQuestionResponse().get(...));  //retrieve the QR you want
            newModelsData.add(model);
        }
        return newModelsData;
    }

    public void setFactoryForEachBean(boolean factoryForEachBean) {
        reader.setFactoryForEachBean(factoryForEachBean);
    }

}
final ListLoader=new BaseListLoader(
代理,新的MyBeanModelReader());
loader.load();
新列表库(加载器)//待办事项
公共类MyBeanModelReader实现DataReader{
私有BeanModelReader=新BeanModelReader();
公共布尔值isFactoryForEachBean(){
返回reader.isFactoryForEachBean();
}
公共列表读取(对象加载配置、对象数据){
List newModelsData=newarraylist();
ListLoadResult models=reader.read(loadConfig,数据);
List modelsData=models.getData();
对于(ModelData ModelData:modelsData){
BeanModel模型=(BeanModel)模型数据;
Response=(Response)model.getBean();
model.set(“id”,response.getId());
model.set(“locale”,response.getLocale());
model.set(“QuestionResponse15”,response.getQuestionResponse().get(…);//检索所需的QR
newModelsData.add(模型);
}
返回newModelsData;
}
public void setFactoryForEachBean(布尔factoryForEachBean){
setFactoryForEachBean(factoryForEachBean);
}
}