【问题标题】:ExtGWT- GXT, how can i define a class that extend from BaseModel?ExtGWT- GXT,我如何定义从 BaseModel 扩展的类?
【发布时间】:2010-09-11 03:06:56
【问题描述】:

我已经阅读了一些教程、文档,但我不知道如何定义从 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()”吗?

【问题讨论】:

    标签: datamodel gxt


    【解决方案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);
    }
    

    }

    【讨论】:

      【解决方案2】:

      这是我们的类,它扩展了 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");
       }
      }
      

      我正在使用这个类来用数据填充分页和简单的网格,它工作得很好。你的 getter 和 setter 看起来不错...

      【讨论】:

        猜你喜欢
        • 2021-07-08
        • 2017-05-20
        • 2016-07-15
        • 2019-03-05
        • 2011-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-30
        相关资源
        最近更新 更多