【发布时间】:2021-05-27 17:18:17
【问题描述】:
我在 Primefaces 10 中有一个站点。有一个子站点 fur 列出了结果。我想要一个 selectManyCheckbox 填充枚举列表,这会产生这些枚举的数组。在一个子站点上它可以工作,而在另一个子站点上我做几乎相同的事情(其他枚举),当我发送表单时出现转换错误。 我的 xhtml 看起来像这样:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
template="../layout.xhtml">
<ui:define name="header">
<div id="header">
Dashboard
</div>
</ui:define>
<ui:define name="main">
<style type="text/css">
.ui-chart {
margin-bottom: 50px;
}
</style>
<h:form id="dashboardForm">
<p:messages id="dashboardErrMsg" globalOnly="true"/>
<p:selectManyCheckbox id="abfSelector" value="#{dashboardHandler.selectedAbfragen}" layout="grid" columns="3" styleClass="grid-checkbox">
<f:selectItems value="#{dashboardHandler.abfragen}" var="abfrage" itemLabel="#{abfrage.name}" itemValue="#{abfrage}"/>
</p:selectManyCheckbox>
<p:commandButton id="showButton" value="Anzeigen" icon="pi pi-search" action="#{dashboardHandler.anzeigen}"/>
<div class="card">
<p:lineChart model="#{dashboardHandler.lineModel}" style="width: 100%; height: 500px;"/>
</div>
</h:form>
</ui:define>
</ui:composition>
bean 看起来像这样:
@Named("dashboardHandler")
@ViewScoped
public class DashboardHandler implements Serializable {
private List<Abfrage> abfragen = new ArrayList<>();
private Abfrage[] selectedAbfragen;
private LineChartModel lineModel;
@PostConstruct
private void init() {
abfragen = UcmdbAbfTableHandler.getAbfragenBySystem(ReferenceSystem.UCMDB);
createLineModel();
}
public void anzeigen() {
//do some search
}
public List<Abfrage> getAbfragen() { return abfragen; }
public LineChartModel getLineModel() { return lineModel; }
public Abfrage[] getSelectedAbfragen() { return selectedAbfragen; }
public void setAbfragen(List<Abfrage> abfragen) { this.abfragen = abfragen; }
public void setLineModel(LineChartModel lineModel) { this.lineModel = lineModel; }
public void setSelectedAbfragen(Abfrage[] selectedAbfragen) { this.selectedAbfragen = selectedAbfragen; }
}
我看不到我的错误,为什么会出现类型转换错误。我尝试将 Abfrage-Array 更改为 List,然后我得到一个包含 abfrage 类名的字符串的列表,就像我制作 abfrage.toString() 时一样。
我也不明白为什么我的消息没有被触发。我总是在我的日志文件中收到带有未处理的面部消息的错误。所以我觉得我在这里也做错了。
【问题讨论】:
标签: jsf primefaces