使用JSF PrimeFaces时,类型java.lang.String上的属性不可读

最好的祝福

我正在尝试使用站点中的演示代码在数据表中实现延迟加载数据

PrimeFaces延迟加载

而我得到了错误

javax.el.PropertyNotFoundException: /table.xhtml @14,49 value="#{car.year}": Property 'year' not readable on type java.lang.String

这是我的table.xhtml代码

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:p="http://primefaces.org/ui">

    <h:form id="form">  

<p:dataTable var="car" value="#{tableBean.lazyModel}" paginator="true" rows="10"  
              id="carTable" lazy="true">  

    <p:column headerText="Year" sortBy="year" filterBy="#{car.year}">  
        <h:outputText value="#{car.year}" />  
    </p:column>  

    <p:column headerText="Color" sortBy="color" filterBy="#{car.color}">  
        <h:outputText value="#{car.color}" />  
    </p:column>  
</p:dataTable>      

TableBean代码

@ManagedBean
public class TableBean {  

private LazyDataModel<Car> lazyModel;  

private List<Car> cars;

public TableBean() {
    System.out.println("Girish");
    cars = populateRandomCars(50);
    lazyModel = new LazyCarDataModel(cars);
    lazyModel.setRowCount(10);
}

public LazyDataModel<Car> getLazyModel() {
    return lazyModel;
}

public void setLazyModel(LazyDataModel<Car> lazyModel) {
    this.lazyModel = lazyModel;
}

public List<Car> getCars() {
    return cars;
}

public void setCars(List<Car> cars) {
    this.cars = cars;
}

private List<Car> populateRandomCars( int size) {
    List<Car> list = new ArrayList<Car>();
    Car car = null;
    for(int i = 0 ; i < size ; i++) {
        car = new Car();
        car.setColor("color "+i);
        car.setYear(""+i);
        list.add(car);  
    }

    return list;
}  
} 

汽车代码

class Car {
private String year;
private String color;



public String getYear() {
    return year;
}
public void setYear(String year) {
    this.year = year;
}
public String getColor() {
    return color;
}
public void setColor(String color) {
    this.color = color;
}
}

和LazyCarDataModel代码

public class LazyCarDataModel extends LazyDataModel<Car> {  

/**
 * 
 */
private static final long serialVersionUID = 1L;
private List<Car> datasource;  

public LazyCarDataModel(List<Car> datasource) {  
    this.datasource = datasource;  
}  

@Override  
public Car getRowData(String rowKey) {  

    return new Car();  
}  

@Override  
public Object getRowKey(Car car) {  
    return car.getYear();  
}  

@Override  
public List<Car> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,String> filters) {  
    List<Car> data = new ArrayList<Car>();  

    //filter  
    for(Car car : datasource) {  
        boolean match = true;  

        for(Iterator<String> it = filters.keySet().iterator(); it.hasNext();) {  
            try {  
                String filterProperty = it.next();  
                String filterValue = filters.get(filterProperty);  
                String fieldValue = String.valueOf(car.getClass().getField(filterProperty).get(car));  

                if(filterValue == null || fieldValue.startsWith(filterValue)) {  
                    match = true;  
                }  
                else {  
                    match = false;  
                    break;  
                }  
            } catch(Exception e) {  
                match = false;  
            }   
        }  

        if(match) {  
            data.add(car);  
        }  
    }  


    //rowCount  
    int dataSize = data.size();  
    this.setRowCount(dataSize);  

    //paginate  
    if(dataSize > pageSize) {  
        try {  
            return data.subList(first, first + pageSize);  
        }  
        catch(IndexOutOfBoundsException e) {  
            return data.subList(first, first + (dataSize % pageSize));  
        }  
    }  
    else {  
        return data;  
    }  
}  
} 

请帮忙。

提前致谢。

交流电

在这种情况下,模型类Car必须是公共的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

/index.xhtml:在类型java.lang.String JSF上找不到属性“ nazwa”

来自分类Dev

为什么在使用JSF的Web应用程序上出现java.lang.NoSuchFieldError?

来自分类Dev

在类型java.lang.String上找不到属性“ productCategoryName”

来自分类Dev

java.lang.Exception:找不到类型为org.primefaces.util.ComponentUtils的函数,签名:java.lang.String resolveWidgetVar(java.lang.String)

来自分类Dev

使用gradle构建时棉绒上的java.lang.AbstractMethodError

来自分类Dev

在ubuntu上使用JNI时出现java.lang.UnsatisfiedLinkError

来自分类Dev

使用JSF生成PDF Jasper报告会返回java.lang.NullPointerException错误

来自分类Dev

当在标题和段落上使用OptimizeLegibility时,Chrome随机显示不可读的单词

来自分类Dev

选择列表,显示在类型java.lang.String上找不到错误的属性“名称”

来自分类Dev

未找到“ JSF属性”异常。肉不可读

来自分类Dev

未找到“ JSF属性”异常。肉不可读

来自分类Dev

错误java.lang.NullPointerException JSF

来自分类Dev

java.lang.ClassCastException:使用Univocity时无法将java.util.Date强制转换为java.lang.String

来自分类Dev

在com.example.widget.MyTableRow上找不到属性类型为java.lang.String的属性“ app:rowContentText”的获取器

来自分类Dev

使用readbinary时导致流不可读

来自分类Dev

尝试使用Spring验证请求正文时出现“ Bean类[java.lang.String]的无效属性'ssn'”

来自分类Dev

无法使用JSF 2.3启动Tomcat 8:java.lang.NoSuchMethodError:javax.faces.view.facelets.FaceletCache.setCacheFactories

来自分类Dev

java.lang.VerifyError:使用Scala Pickle的操作数堆栈上的类型错误

来自分类Dev

JSF-使用Primefaces RowEditEvent时如何获取新旧值?

来自分类Dev

使用 JSF 和 Primefaces 下载文件时出错

来自分类Dev

HTTP状态500-javax.el.PropertyNotFoundException:在类型java.lang.String上找不到属性'first_name'

来自分类Dev

JSP EL无法正常工作-javax.el.PropertyNotFoundException:在类型java.lang.String上找不到属性“名称”

来自分类Dev

javax.el.PropertyNotFoundException:itemLabel =“#{projet.nomProjet}”:在类型java.lang.String上找不到属性'nomProjet'

来自分类Dev

Spring set java.io.File属性使用java.lang.String bean

来自分类Dev

com.google.firebase.database.DatabaseException:无法使用RecyclerView将类型为java.lang.String的对象转换为类型

来自分类Dev

java.lang.NoSuchMethodError sun.misc。在Android上使用外部Jar时不安全

来自分类Dev

java.lang.NoSuchMethodError sun.misc。在Android上使用外部Jar时不安全

来自分类Dev

使用@RestService时的类加载异常-dalvik.system.BaseDexClassLoader.findClass上的java.lang.ClassNotFoundException(...)

来自分类Dev

java.lang.UnsupportedOperationException:当不使用基本rowKey算法时,必须实现getRowData(String rowKey)

Related 相关文章

  1. 1

    /index.xhtml:在类型java.lang.String JSF上找不到属性“ nazwa”

  2. 2

    为什么在使用JSF的Web应用程序上出现java.lang.NoSuchFieldError?

  3. 3

    在类型java.lang.String上找不到属性“ productCategoryName”

  4. 4

    java.lang.Exception:找不到类型为org.primefaces.util.ComponentUtils的函数,签名:java.lang.String resolveWidgetVar(java.lang.String)

  5. 5

    使用gradle构建时棉绒上的java.lang.AbstractMethodError

  6. 6

    在ubuntu上使用JNI时出现java.lang.UnsatisfiedLinkError

  7. 7

    使用JSF生成PDF Jasper报告会返回java.lang.NullPointerException错误

  8. 8

    当在标题和段落上使用OptimizeLegibility时,Chrome随机显示不可读的单词

  9. 9

    选择列表,显示在类型java.lang.String上找不到错误的属性“名称”

  10. 10

    未找到“ JSF属性”异常。肉不可读

  11. 11

    未找到“ JSF属性”异常。肉不可读

  12. 12

    错误java.lang.NullPointerException JSF

  13. 13

    java.lang.ClassCastException:使用Univocity时无法将java.util.Date强制转换为java.lang.String

  14. 14

    在com.example.widget.MyTableRow上找不到属性类型为java.lang.String的属性“ app:rowContentText”的获取器

  15. 15

    使用readbinary时导致流不可读

  16. 16

    尝试使用Spring验证请求正文时出现“ Bean类[java.lang.String]的无效属性'ssn'”

  17. 17

    无法使用JSF 2.3启动Tomcat 8:java.lang.NoSuchMethodError:javax.faces.view.facelets.FaceletCache.setCacheFactories

  18. 18

    java.lang.VerifyError:使用Scala Pickle的操作数堆栈上的类型错误

  19. 19

    JSF-使用Primefaces RowEditEvent时如何获取新旧值?

  20. 20

    使用 JSF 和 Primefaces 下载文件时出错

  21. 21

    HTTP状态500-javax.el.PropertyNotFoundException:在类型java.lang.String上找不到属性'first_name'

  22. 22

    JSP EL无法正常工作-javax.el.PropertyNotFoundException:在类型java.lang.String上找不到属性“名称”

  23. 23

    javax.el.PropertyNotFoundException:itemLabel =“#{projet.nomProjet}”:在类型java.lang.String上找不到属性'nomProjet'

  24. 24

    Spring set java.io.File属性使用java.lang.String bean

  25. 25

    com.google.firebase.database.DatabaseException:无法使用RecyclerView将类型为java.lang.String的对象转换为类型

  26. 26

    java.lang.NoSuchMethodError sun.misc。在Android上使用外部Jar时不安全

  27. 27

    java.lang.NoSuchMethodError sun.misc。在Android上使用外部Jar时不安全

  28. 28

    使用@RestService时的类加载异常-dalvik.system.BaseDexClassLoader.findClass上的java.lang.ClassNotFoundException(...)

  29. 29

    java.lang.UnsupportedOperationException:当不使用基本rowKey算法时,必须实现getRowData(String rowKey)

热门标签

归档