1

私は問題なく動作しているprimefacesピックリストコンポーネントを使用しています

しかし、問題は、DTO のリストを使用していることです。その後、Serializable と Clonable の両方が可能です。DTO の構造は次のようになります。

public class SearchFieldMasterDTO implements Serializable, Clonable {
  private static final long serialVersionUID = 1L;
  private String id;
  private String fieldName;
  private String status;
  private String columnName;
  private List<String> fieldValues;
  private String fieldCode;
}

pickList コンポーネントは次のとおりです。

public class ActionClass {

  private DualListModel<SearchFieldMasterDTO> searchFields;
  List<SearchFieldMasterDTO> sourceSearchFields;
  List<SearchFieldMasterDTO> targetSearchFields;

  public init(){
    sourceSearchFields = service.getAllFields();
    targetSearchFields = new ArrayList<>();
    //here all the SearchFieldMasterDTO objects in the list having all the field values invluding  getFieldValues() (list of Sting) value
    searchFields = new DualListModel<> (sourceSearchFields,targetSearchFields);
 }

public void onTransfer() {
    sourceSearchFields = searchFields.getSource();
    targetSearchFields = searchFields.getTarget();
 // here only the getFieldValues() become null 
}
}

onTransfer ajax イベントで、ソースとターゲットのリストを取得し、さらに使用するためにフィールド レベルのリストに設定しています。

問題は、 DualListModel 、 sourceList 、および targetList を作成する前に、すべての値が入力された DTO を持つことです。

primefaces pickList を使用して sourceList から targetList に単一の DTO を転送した後、dualList.getTarget メソッドを使用して targetList を取得し、転送されたオブジェクトでリストを返していますが、値が 1 つだけ null になっています

助けてください、、、 pickList が内部的にオブジェクトのクローン作成を行っていると思ったので、文字列フィールドのリストが失われ、クローン メソッドをオーバーライドしてすべての値をディープ クローンしましたが、クローン メソッドにブレークポイントを置いたオブジェクトのクローンはまったく作成されませんでした。私はそれがクローンメソッドを呼び出していないことを確信しています.String fieldValuesプロパティ値のLiだけが欠落しています

4

0 に答える 0