2014-09-20 99 views
0

我有重寫負載primefaces lazydatamodel的問題。加載方法中的錯誤點。我正在使用primefaces 5.0。在JBoss中開發工作室工作7.1Primefaces lazydatamodel加載覆蓋不起作用

private LazyDataModel<City> mdlCityList; 
    @PostConstruct 
     public void init() { 
      try { 
       this.mdlCityList = new LazyDataModel<City>() { 
        private static final long serialVersionUID = 1L; 

        @Override 
        public List<City> load(int first, int pageSize, 
          String sortField, SortOrder sortOrder, 
          Map<String, String> filters) { 
         mdlCityList.setRowCount(cityFacade.count(filters)); 
         return cityFacade.getResultList(first, pageSize, sortField, 
           sortOrder, filters); 
        } 
       }; 
       mdlCityList.setRowCount(cityFacade 
         .count(new HashMap<String, String>())); 
      } catch (Exception e) { 
       System.out.println("Exception in CityListProducer " + e); 
      } 
     } 

正如你所看到的,我在執行@覆蓋,但它仍然指出:

的方法負載(INT,INT,絃樂,SortOrder的,圖) 型新LazyDataModel(){}必須重寫或實現 超類型方法的

回答

11

重寫在PF 5的方法現在應該看起來

public List<Car> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,Object> filters) 

代替

public List<Car> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,String> filters) 

Map<String,Object>代替Map<String,String>在你的方法

看例子http://www.primefaces.org/showcase/ui/data/datatable/lazy.xhtml

+0

對不起,究竟是在2之間的區別你提到?你是否建議我創建一個LazyCityModel類似於showcase中的類?這不可能了嗎? – MLDS 2014-09-20 10:31:54

+1

區別在於Map 過濾器和Map 過濾器(Map上的Object和String類型的值)。您應該使用參數類型(例如Map ,而不是Map )來重寫。 – 2014-09-20 10:45:54

+0

對不起,我很專注於比較諷刺,我沒有看到一件事。謝謝Alex!對不起,我的愚蠢,在那裏迷了幾個小時。 – MLDS 2014-09-21 05:51:02