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

如何在Primefaces选取列表中预填充目标?,primefaces,picklist,Primefaces,Picklist,如何在Primefaces选取列表中预填充目标 我用以下代码初始化了DualListModel: List<Dimension> dimensionsSource = new ArrayList<Dimension>(); List<Dimension> dimensionsTarget = new ArrayList<Dimension>(); Dimension dimension = new Dimension("Year", "year"

如何在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);
List dimensionsSource=new ArrayList();
List dimensionsTarget=new ArrayList();
维度=新维度(“年”、“年”、“名称”);
尺寸来源添加(尺寸);
维度=新维度(“季度”、“季度”、“id”);
尺寸来源添加(尺寸);
维度=新维度(“月”、“月”、“id”);
维度starget.add(维度);
维度=新的DualListModel(维度来源,维度StarGet);

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

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

@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();
}
@FacesConverter(value=“dimensionsConverter”)
公共类维度转换器实现转换器{
@凌驾
公共对象getAsObject(FacesContext FacesContext,UIComponent UIComponent,字符串s){
@抑制警告(“未选中”)
DualListModel值=(DualListModel)((PickList)uiComponent.getValue();
List source=value.getSource();
对于(维度:源){
如果(s.equals(dimension.GetTableandDerColumn())){
返回维度;
}
}
返回null;
}
@凌驾
公共字符串getAsString(FacesContext FacesContext,UIComponent UIComponent,Object o){
返回((维度)o).GetTableandDerColumn();
}
转换器试图在源列表中查找“月份”,而月份在目标列表中:) 谢谢你的时间