На основе схемы 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.Свойство
modelcarявляется бобовым свойством Сериализуемого 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.