На основе схемы PrimeFaces объекта DataTable фильтрации (проблемы при запуске, например)
Я пробую этот пример в примитивах. Я понимаю только первые несколько строк кода.
<p:dataTable var="car" value="#{tableBean.carsSmall}"
emptyMessage="No cars found with given criteria">
<f:facet name="header">
<p:outputPanel>
<h:outputText value="Search all fields:" />
<p:inputText id="globalFilter" onkeyup="carsTable.filter()" style="width:150px" />
</p:outputPanel>
</f:facet>
Здесь может отображаться окно поиска. Развертка строк кода будет состоять в добавлении столбца и заполнении столбцов данными. Я не понимаю, что
<p:column filterBy="#{car.model}"
headerText="Model" footerText="contains"
filterMatchMode="contains">
<h:outputText value="#{car.model}" />
</p:column>`
Что такое #{car.model}
? он не указывает ничего call model
в классе java. Как я могу изменить свой класс java, чтобы сделать отображение столбца?
2 ответа:
Переменная выражения
car
объявляется атрибутомvar
объекта dataTable. Это означает, что каждая уникальная строка в компоненте dataTable может ссылаться на языке выражений переменнойcar
.Свойство
model
car
является бобовым свойством Сериализуемого POJO Car. Предполагается, что класс автомобилей имеет свойствоmodel
, означающее геттерgetModel()
и сеттерsetModel()
.Атрибут
filterBy
<p:column>
указывает, что этот заголовок столбца будет иметь свой собственный уникальный фильтр текстового поля и что он будет фильтровать строки по свойствуcar.model
.Атрибут
filterMatchMode
указывает, что критерием соответствия являетсяcontains
, что означает, что любое текстовое появление того, что введено в поле фильтра столбца, будет приравниваться как совпадающая запись. Посмотреть на основе схемы PrimeFaces руководство для полный список параметров filterMatchMode.
private List<Car> carsSmall;
CarsSmall-это список, который содержит
Car
объекты.Car
импортируется сюда:import org.primefaces.examples.domain.Car;
Автомобиль является бэк-Бобом, он имеет атрибут
model
, который содержит модель автомобиля в видеString
.В машине
#{car.model}
определяется здесь:<p:dataTable var="car"...>
DataTable перебирает каждый элемент в списке
carsSmall
, и вы можете получить доступ к текущему элементу, используя имя, указанное в атрибутеvar
(здесь:car
). Так#{car.model}
называетgetModel()
метод текущего объектаCar
.