【问题标题】:Primefaces lazydatamodel load override not workingPrimefaces延迟数据模型加载覆盖不起作用
【发布时间】:2014-09-20 06:47:51
【问题描述】:

我在覆盖 primefaces 延迟数据模型的负载时遇到问题。错误点在加载方法上。我正在使用primefaces 5.0。在 Jboss Developer Studio 7.1 中工作

 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);
            }
        }

如您所见,我正在实现@Override,但它仍然指出:

方法load(int, int, String, SortOrder, Map) type new LazyDataModel(){} 必须覆盖或实现 超类型方法

【问题讨论】:

    标签: jsf jsf-2 primefaces lazydatamodel


    【解决方案1】:

    现在在 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&lt;String,Object&gt; 代替 Map&lt;String,String&gt; 在你的方法中

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

    【讨论】:

    • 对不起,你提到的两者之间到底有什么区别?您是否建议我创建一个类似于展示中的 LazyCityModel 类?这不可能了?
    • 区别在于 Map 过滤器和 Map 过滤器(Map 上的对象和字符串类型类似于值)。您应该使用示例中的参数类型 (Map 而不是 Map) 进行覆盖。
    • 对不起,我太专注于比较,讽刺的是,我什么也没看到。谢谢亚历克斯!对不起我的愚蠢,在那里迷路了几个小时。
    • 另外,记得在你的xhtml中设置lazy="true" dynamic="true",否则你将无法调用load()方法。
    • 容易错过 Map 的第二种泛型
    猜你喜欢
    • 2012-10-25
    • 2019-01-15
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 2016-11-02
    • 2012-09-25
    • 2019-01-18
    相关资源
    最近更新 更多