首页 > 解决方案 > 未设置 omnifaces.ListConverter 中的列表

问题描述

我正在使用 PrimeFaces 开发 JSF 应用程序。

对于 Picklist,我正在尝试使用 omnifaces.ListConverter,但未设置此转换器中的 list 属性。

报告-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}"/>

报告EditView.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 中的元素时,也不会调用侦听器方法。

任何想法我做错了什么?

标签: jsfprimefacesomnifaces

解决方案


真丢人!

我解决了这个问题。我不知道如何,但xmlns:o="http://java.sun.com/jsf/core"在我的reporting-edit.xhtml 中有。将其替换为xmlns:o="http://omnifaces.org/ui"一切都像魅力一样。


推荐阅读