我已经阅读了一些教程,文档,但我不知道如何定义从BaseModel或ModelData扩展的类?具体来说,我不知道如何命名getter和setter方法以及方法内的值。有没有代码约定?例如:
public void setName(String value) { set("name", value); //why is it "name"? does it relate to a attribute of Data Object? } public String getName() { return get("name"); }
在“使用ExtGWT进行Appress开发”中,他们说:“ModelData允许小部件查询数据对象,而无需对任何特定数据类型提供具体支持,从而提供与模型和视图的分离”。
我可以推断出而不是像以下那样创建一个实例:
Foo foo = new Foo(); foo.getName();
我可以调用“getName()”吗?
答案 0 :(得分:1)
这是我在编写扩展ModelData的pojo时通常所做的事情。 本质上调用set()或get()只是访问一个hashmap。这允许您的数据对象具有“反射类型”运行时访问的松散类型属性。因此,您可以有效地传递任何字符串作为第一个参数,并定义属性名称。
我使用静态最终字符串来更容易维护对象。
如果你想分层WRT数据对象,你也可以连接getter和setter,但这可能会使GXT类型绑定更难。
public class MockModel extends BeanModel implements ModelData {
private static final long serialVersionUID = -5276682038816452567L;
public static final String ID = "ID";
public static final String NAME = "NAME";
public static final String DESCRIPTION = "DESCRIPTION";
public static final String FIELD1 = "FIELD1";
public static final String FIELD2 = "FIELD2";
public static final String FUNCTION1 = "FUNCTION1";
public static final String FUNCTION2 = "FUNCTION2";
public MockModel(int id, String name, String desc, int f1, int f2) {
set(ID,id);
set(NAME,name);
set(DESCRIPTION,desc);
set(FIELD1,f1);
set(FIELD2,f2);
set(FUNCTION1, 0);
set(FUNCTION2, 0);
}
}
答案 1 :(得分:0)
这是我们的类,它扩展了BaseModel
import com.extjs.gxt.ui.client.data.BaseModel;
public class Order extends BaseModel {
private static final long serialVersionUID = 1L;
/**
* Default constructor
*/
public Order() {
super();
}
public Order(Integer lieferungID) {
this();
setLieferungID(lieferungID);
}
public void setLieferungID(int lieferungID) {
set("lieferungID", lieferungID);
}
public Integer getLieferungID() {
return get("lieferungID");
}
}
我正在使用这个类用数据填充分页和简单网格,它完美无缺。你的吸气剂和二传手看起来不错......