我正在使用 jsf 和 primefaces 开发 webapps,并且在检索数据表中的数据时面临一个问题,即使用 primefaces 的数据表标签在 xhtml 页面中显示数据
这是我的 xhtml 代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<body>
<h:form id="form">
<h:panelGrid columns="2" cellpadding="10">
<h:outputText value="Batch Name" />
<p:selectOneMenu id="city" value="#{allot.batchName}">
<f:selectItem itemLabel="Select Batch" itemValue="" />
<f:selectItems value="#{allot.batchList}" />
<p:ajax listener="#{allot.handleBatch}" />
</p:selectOneMenu>
<p:dataTable var="batch" value="#{allot.batchInfoList}" >
<p:column headerText="Tan">
<h:outputText value="#{batch.tan}" />
</p:column>
</p:dataTable>
</h:panelGrid>
</h:form>
</body>
</html>
这是我用于检索数据的操作 bean
package com.cation.action;
import java.util.ArrayList;
import java.util.List;
import com.cation.bean.BatchInfo;
import com.cation.controller.CationController;
public class Allocation {
private String batchName;
private List<BatchInfo> batchInfoList;
private List<String> batchList = new ArrayList<String>();
private CationController cationController = new CationController();
public String getBatchName() {
return batchName;
}
public void setBatchName(String batchName) {
this.batchName = batchName;
}
public List<BatchInfo> getBatchInfoList() {
return batchInfoList;
}
public void setBatchInfoList(List<BatchInfo> batchInfoList) {
this.batchInfoList = batchInfoList;
}
public List<String> getBatchList() {
return batchList;
}
public void setBatchList(List<String> batchList) {
this.batchList = batchList;
}
public Allocation() {
try {
batchList = cationController.getAllBatch();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String handleBatch() {
try {
batchInfoList = new ArrayList<BatchInfo>();
batchInfoList = cationController.getBatchByName(batchName);
} catch (Exception e) {
e.printStackTrace();
}
return "allotInput";
}
}
我的条件是,当从 selectone 菜单标签中选择一个值时,我得到了选定的值,并使用该值来检索一些对象列表并使用数据表在 xhtml 页面中显示。但问题是我正在获取正在运行的对象列表,但 xhtml 页面中没有显示数据。
谁能帮我解决这个问题。