2014-09-03 2 views
0

Primefaces picklist에서 대상을 미리 채우는 방법은 무엇입니까? Primefaces picklist에서 목표를 미리 채우는 방법은 무엇입니까?

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() :

나는 다음과 같은 코드로 DualListModel를 초기화.

답변

0

이 문제를 해결했습니다. 그 이유는 잘못된 컨버터이었다

@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(); 
} 

변환기 달 대상 목록 : 시간에 대한 모든 고맙습니다에있는 동안 소스 목록에서 "월"을 찾기 위해 노력하고있다!