0

いくつかのチュートリアルやドキュメントを読みましたが、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 を使用した Apppress の開発」で、彼らは次のように述べています。

次のようなインスタンスを作成する代わりに、それを推測できますか:

Foo foo= new Foo(); foo.getName();

「getName()」を呼び出すことができますか?

4

2 に答える 2

1

ModelData を拡張する pojo をコーディングするときに私が通常行うことは次のとおりです。基本的に set() または get() を呼び出すと、ハッシュマップにアクセスするだけです。これにより、データ オブジェクトは、「リフレクション タイプ」のランタイム アクセス用に型指定の緩いプロパティを持つことができます。そのため、効果的に最初のパラメーターとして任意の文字列を渡すことができ、それによってプロパティ名が定義されます。

オブジェクトを維持しやすくするために、静的な最終文字列を使用します。

レイヤーの分離が必要な場合は、ゲッターとセッターをインターフェースすることもできますデータオブジェクトをWRTしますが、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);
}

}

于 2010-09-13T05:49:03.550 に答える
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");
 }
}

このクラスを使用して、ページングと単純なグリッドをデータで埋めています。これは完璧に機能します。あなたのゲッターとセッターはよさそうだ...

于 2010-09-17T18:51:26.750 に答える