【发布时间】:2015-08-05 10:00:46
【问题描述】:
我有一个分页数据表:
<h:form>
<p:dataTable var="proj" value="#{orderListView.projects}"
paginator="true" rows="3"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
>
<p:column sortBy="#{proj.id}">
<h:outputText value="#{proj.id}" />
</p:column>
<p:column sortBy="#{proj.name}">
<h:outputText value="#{proj.name}" />
</p:column>
<p:column sortBy="#{proj.displayName}">
<h:outputText value="#{proj.displayName}" />
</p:column>
</p:dataTable>
</h:form>
基于此实体:
@Entity
public class Project implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String displayName;
private String name;
public Project() {}
public Project(int id, String displayName, String name) {
this.id = id;
this.displayName = displayName;
this.name = name;
}
// Getters+setters.
}
并且填充在这个 bean 中(为简洁起见,我省略了 DAO/Service 部分,我在 @PostConstruct 中对模型进行硬编码):
@ManagedBean
@RequestScoped
public class OrderListView {
private List<Project> projects;
@PostConstruct
public void init() {
projects = new ArrayList<Project>();
projects.add(new Project(10, "Cruze", "cruze"));
projects.add(new Project(11, "Dark-Hive", "dark-hive"));
projects.add(new Project(12, "Delta", "delta"));
projects.add(new Project(10, "Cruze", "cruze"));
projects.add(new Project(11, "Dark-Hive", "dark-hive"));
projects.add(new Project(12, "Delta", "delta"));
projects.add(new Project(13, "Dot-Luv", "dot-luv"));
projects.add(new Project(14, "Eggplant", "eggplant"));
projects.add(new Project(15, "Excite-Bike", "excite-bike"));
projects.add(new Project(16, "Flick", "flick"));
projects.add(new Project(17, "Glass-X", "glass-x"));
projects.add(new Project(18, "Cruze", "cruze"));
projects.add(new Project(19, "Dark-Hive", "dark-hive"));
projects.add(new Project(20, "Delta", "delta"));
projects.add(new Project(23, "Dot-Luv", "dot-luv"));
projects.add(new Project(24, "Eggplant", "eggplant"));
projects.add(new Project(25, "Excite-Bike", "excite-bike"));
projects.add(new Project(26, "Flick", "flick"));
projects.add(new Project(27, "Glass-X", "glass-x"));
}
public List<Project> getProjects() {
return projects;
}
}
数据表正确显示列表,但分页不起作用。这是如何引起的,我该如何解决?我也尝试过延迟加载,但它也不起作用。
【问题讨论】:
-
“我使用 Sprimg MVC 和 PrimeFaces。” - 不真实。不能一起使用它们(PrimeFaces 作为 JSF 组件库)。
-
对不起,Spring Core - 我已经改变了
-
对于延迟加载,您需要为 Project 创建lazyDateModel 并实现您自己的加载方法......您的示例甚至不接近它。 primefaces.org/showcase/ui/data/datatable/lazy.xhtml
-
是的,我从官方网站获取,但在我的情况下它不起作用。现在我尝试创建只有分页(没有惰性)的基本表,但分页不起作用 - 数据加载和页面存在于表中(不工作)
标签: jsf primefaces datatable pagination