2017-09-29 35 views
0

JSFのLazyDataModel(リスト)に問題があります。問題は次のとおりです。LazyDataModelの問題。最初のパラメータをリセットしない

xhtmlには検索フォームとその検索結果のリストがあります。私は、4ページ目に、例えば、最初の検索を行うと、私はページに関する上を移動するとき、このpaginedリストに表示し、私が持っている:

enter image description here

私は新しい検索を実現した場合、この新しいに結果は、4ページの料金表を参照してください。パラメータは最初に新しい検索ごとにリセットされません。どうして?

enter image description here

  1. Beanが注釈を有する。@Componentを@ViewScoped。結果と
  2. リストはLazyDataModelあるとメソッドを上書き:負荷getRowKeygetRowDataを。
  3. バージョンは、JSF 2.0、PrimeFaces 6.1、およびSpring 4.0.3.RELEASEです。

答えて

0

問題は、同じデータモデルを維持している場合です。リストをリフレッシュするときは、新しいデータモデルを作成する必要があります。例えば

、データモデル:

public class MyDataModel extends LazyDataModel<MyEntity> { 
    // my datamodel 
} 

とBean(この場合は、CDI)は

@Named 
@ViewScoped 
public class MyBean implements Serializable { 

    private static final long serialVersionUID = 1L;  

    private MyDataModel myDataModel; 

    //calling this method, a new datamodel is created and populated 
    public void search() { 
     List myList = new ArrayList(); //load from database 
     loadDatamodel(myList); 
    } 

    private void loadDatamodel(List myList) {    
     myDataModel = new MyDataModel(myList); 
    } 

    public MyDataModel getMyDataModel() { 
     return myDataModel; 
    } 
} 

だから、すべての検索では、新しいデータモデルが作成されます。

関連する問題