目标无法到达,“汽车”返回null

时间:2018-12-05 08:02:56

标签: java jsf primefaces

我使用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

    }

有人能找出这段代码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

您应该在Car类中创建正确的getter / setter方法。

此外,此#{car.street.city.country}无法正确解析,因为streetMap类中的Car

创建一个Street类,该类嵌入所需的适当数据模型。然后在street类的Car属性数据类型中使用它。