我正在尝试使用站点中的演示代码在数据表中实现延迟加载数据
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
必须是公共的。
我得到了这个错误,我不知道问题可能在哪里。“userid”列位于数据库和bean中。有人知道吗?
我的spring应用程序无法将“日期”保存到“数据库”。错误在哪里? 错误 无法将类型为[java.lang.String]的属性值转换为属性bornDate所需的类型[java.sql.Date];嵌套的异常是java。lang.IllegalArgumentException:无法解析日期:无法解析的日期:“2016-11-02” mysql 实体 控制器 艾德曼。html
LineSeries['areaStyle']的类型是AreaStyle | undefined 报错:类型“AreaStyle | undefined”上不存在属性“color”。 如何通过 LineSeries使用color属性的类型呢?
我有两个实体,它们使用一个主键互相引用,主键是一个实体的整数。我不确定我做这件事的方式是否正确。 下面是引用主键id为int的实体 下面是我们从上面的实体中将外键设置为Kmichango kandaMchango的实体。 这里是表单的一部分,我在这里提交了用户在jumuiya_michango_form.html中提供的数据 下面是我的控制器中用于链接到表单和发布数据的两个方法 在我提交表单后,我
我使用的是完全修补过的Visual Studio 2013。我正在尝试使用JQuery、JQueryUI和JSRender。我也在尝试使用打字。在ts文件中,我得到如下错误: 类型“{}”上不存在属性“fade div”。
我试图在登录过程后获得连接的用户模型, 首先,在CanActivate guard检查了带有用户JSON对象的本地存储并发现该对象为空之后,用户将重定向到“/login”URL 然后用户登录并重定向回根URL“/”,在连接过程中我使用AuthService,它将从服务器返回的用户对象保存在用户模型中 这是我的守卫: