如何在Primefaces选取列表中预填充目标?
如何在Primefaces选取列表中预填充目标 我用以下代码初始化了DualListModel:如何在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"
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();
}
转换器试图在源列表中查找“月份”,而月份在目标列表中:)
谢谢你的时间