【问题标题】:How to prepopulate target in Primefaces picklist?如何在 Primefaces 选项列表中预填充目标?
【发布时间】:2014-09-04 21:40:53
【问题描述】:

如何在 Primefaces 选项列表中预填充目标?

我用下面的代码初始化了DualListModel

List<Dimension> dimensionsSource = new ArrayList<Dimension>();
List<Dimension> dimensionsTarget = new ArrayList<Dimension>();

Dimension dimension = new Dimension("Year", "year", "name");
dimensionsSource.add(dimension);

dimension = new Dimension("Quarter", "quarter", "id");
dimensionsSource.add(dimension);

dimension = new Dimension("Month", "month", "id");
dimensionsTarget.add(dimension);

dimensions = new DualListModel<Dimension>(dimensionsSource, dimensionsTarget);

PickList 出现在屏幕上时,它在目标列表中有“月份”,但是当我提交数据时getTarget() 返回一个空列表。

【问题讨论】:

    标签: primefaces picklist


    【解决方案1】:

    我解决了这个问题!原因是转换器错误:

    @FacesConverter(value = "dimensionsConverter")
    public class DimensionsConverter implements Converter {
    @Override
    public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String s)     {
        @SuppressWarnings("unchecked")
        DualListModel<Dimension> value = (DualListModel<Dimension>)((PickList) uiComponent).getValue();
        List<Dimension> source = value.getSource();
        for (Dimension dimension : source) {
            if(s.equals(dimension.getTableAndOrderColumn())){
                return dimension;
            }
        }
    
        return null;
    }
    
    @Override
    public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object o) {
        return ((Dimension)o).getTableAndOrderColumn();
    }
    

    转换器试图在源列表中查找“月份”,而月份在目标列表中:) 感谢大家的宝贵时间!

    【讨论】:

      猜你喜欢
      • 2013-01-10
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      相关资源
      最近更新 更多