我使用Primefaces来显示汽车的懒惰列表。一旦我想要过滤或选择我就会收到消息;无法到达目标,“街道”返回null。
public class Car implements Serializable {
private Map<String, Object> street;
private UUID id;
private String brand;
}
我的数据表
<p:dataTable id="cars" editable="true" editMode="cell" var="car"
value="#{carListView.cars}"
selection="#{carListView.selectedCar}"
lazy="true" widgetVar="carsTable">
<p:column headerText="Id">
<h:outputText value="#{car.id}"/>
</p:column>
<p:column headerText="brand">
<h:outputText value="#{car.brand}"/>
</p:column>
<p:column headerText="country" filterBy="#{car.street.city.country}">
<h:outputText value="#{car.street.city.country}"/>
</p:column>
</p:datatable>
我的观点:
public class CarListView implements Serializable {
@Inject
LazyCarModel cars
private Car car;
private Car selectedCar;
@Postconstruct
public void init(){
Car = new Car();
selectedCar = new Car();
}
}
和我的负载:
@Override
public List<Car> load(int first, int pageSize, String sortField,SortOrder sortOrder,Map<String, Object> filters) {
myList = carService.getCars();
return myList
}
有人能找出这段代码有什么问题吗?
答案 0 :(得分:0)
您应该在Car类中创建正确的getter / setter方法。
此外,此#{car.street.city.country}
无法正确解析,因为street
是Map
类中的Car
。
创建一个Street
类,该类嵌入所需的适当数据模型。然后在street
类的Car
属性数据类型中使用它。