Java Sencha:迭代自定义BaseModel子类的列表存储
我昨天刚开始玩Sencha的Ext GWT,我遇到了麻烦。我组合了来自JSON加载网格和可编辑网格的方法。作为一个测试数据集,我使用了星际之门亚特兰蒂斯剧集列表,因此SGAEpisode定义为:Java Sencha:迭代自定义BaseModel子类的列表存储,java,gwt,extjs,Java,Gwt,Extjs,我昨天刚开始玩Sencha的Ext GWT,我遇到了麻烦。我组合了来自JSON加载网格和可编辑网格的方法。作为一个测试数据集,我使用了星际之门亚特兰蒂斯剧集列表,因此SGAEpisode定义为: public class SGAEpisode extends BaseModel { public SGAEpisode() { } public SGAEpisode(String season, String episode) { set("season",season);
public class SGAEpisode extends BaseModel {
public SGAEpisode() {
}
public SGAEpisode(String season, String episode) {
set("season",season);
set("episode",episode);
}
public void setSeason(String season) {
set("season",season);
}
public String getSeason(){
return get("season");
}
public void setEpisode(String name) {
set("episode",name);
}
public String getEpisode() {
return get("episode");
}
public String toString() {
return "Season: " + get("season") + " episode: " + get("episode");
}
}
onModuleLoad以
ModelType type = new ModelType();
type.setRoot("seasons");
type.addField("Season","season");
type.addField("Episode","episode");
String path = GWT.getHostPageBaseURL() + "senchaapp/sgaepisodes";
final RequestBuilder builder = new RequestBuilder(RequestBuilder.GET,path);
final MVProxy<String> proxy = new SProxy<String>(builder);
JsonLoadResultReader<ListLoadResult<SGAEpisode>> reader = new JsonLoadResultReader<ListLoadResult<SGAEpisode>>(type);
final BaseListLoader<ListLoadResult<SGAEpisode>> loader = new BaseListLoader<ListLoadResult<SGAEpisode>>(proxy,reader);
final ListStore<SGAEpisode> episodes = new ListStore<SGAEpisode>(loader);
或
我收到一条异常消息,消息com.extjs.gxt.ui.client.data.BaseModel无法转换为com.mvsc.sencha.shared.sgaepicode知道我做错了什么吗?到那时为止,所有内容都定义/填充了SGAEPISODE
附录
好吧,如果我试一下
List<Record> modified = episodes.getModifiedRecords();
for(Record r : modified) {
ModelData md = r.getModel();
save(md.get("season"),md.get("episode"));
}
我可以迭代并获得修改后的值,但是如果我必须像这样使用基类,那么拥有ModelData子类又有什么意义呢。这让我觉得我其实不需要。。。。。帮个小忙
附录2我尝试对BaseModelData进行子类化,但没有成功。我知道这是一篇较老的文章,我也有同样的问题。我就是这样修好的。 尝试在listStore中迭代模型
for(SGAEpisode episode : episodes.getModels()) {
save(episode);
}
List<Record> modified = episodes.getModifiedRecords();
for(Record r : modified) {
ModelData md = r.getModel();
save(md.get("season"),md.get("episode"));
}
for(SGAEpisode episode : episodes.getModels()) {
save(episode);
}