【发布时间】:2019-02-25 02:18:10
【问题描述】:
我正在使用 PrimeFaces 开发 JSF 应用程序。
对于 Picklist,我正在尝试使用 omnifaces.ListConverter,但未设置此转换器中的列表属性。
reporting-edit.xhtml
<p:pickList id="picklist_columns" value="#{reportingEditView.columns}" var="repcolumn"
itemLabel="#{repcolumn.column.name}" itemValue="#{repcolumn}" responsive="true"
showSourceFilter="true" filterMatchMode="contains">
<o:converter converterId="benni.ListConverter" list="#{reportingEditView.columns.source}"/>
<f:facet name="targetCaption">Spalten</f:facet>
<p:ajax event="transfer" listener="#{reportingEditView.handleColumnTransfer}"/>
reportingEditView.java
@ManagedBean
@SessionScope
public class ReportingEditView
{
private DualListModel<RepColumn> columns;
public void initPickList()
{
List<RepColumn> availableColumns = new ArrayList<>();
List<RepColumn> selectedColumns = new ArrayList<>();
... populate availableColumns and selectedColumns ...
this.columns = new DualListModel<RepColumn>();
this.columns.setSource(availableColumns);
this.columns.setTarget(selectedColumns);
}
}
所有列都显示在我的 PickList 中,但是当我将源列表中的一列放入目标列表时,会抛出 NullPointer,因为未设置转换器中的列表。
在 PickList 中传输元素时也不会调用 listener 方法。
任何想法我做错了什么?
【问题讨论】:
标签: jsf primefaces omnifaces