2012-01-15 2 views
1

Я пытаюсь использовать значения в коллекции карт (не важно, какой тип, HashMap, TreeMap), для заполнения компонента данных ICEfaces и отображения свойств объектов. Единственными примерами, которые я смог найти, являются те, которые просто экспортируют значения Карты в коллекцию List и используют это для заполнения данных. Тем не менее, я считаю, что это очень расточительно, и теперь я вынужден поддерживать две коллекции точных значений.Как использовать коллекцию карт с компонентом datatable с ICEfaces

Поддерживает ли компонент данных даже поддержку итерации по значениям карты? Если нет, возможно, есть лучший способ обойти это ранее упомянутое решение?

Для любопытных я хочу использовать коллекцию карт для быстрого удаления, и это наиболее естественно подходит для моих данных (основанных на ключах).

ответ

1

Стоит попробовать:

Я нашел следующее решение: JSF: Using Map data in Datatable, пример в URL относится к RichFaces, но, на мой взгляд, все, что вам нужно сделать, это использовать ICEfaces теги, если вы будете использовать LinkedHashMap это может помочь вам с заказом ...

В случае, если URL идет плохо, вот код:

Map<String,String> myMap; 

public List<String> getMapKeys(){ 
    List<String> ret = new ArrayList<String>(); 
    for (String s : myMap.keySet()) 
     ret.add(s); 
    return ret; 
} 

на странице JSF:

<rich:extendedDataTable value="#{myBean.mapKeys}" var="item" 
    id="datatable"> 
    <rich:column width="190px" sortable="false" label="Map entries" 
     id="labelColumn"> 
     <f:facet name="header">Map entries</f:facet> 
     <h:outputText value="#{myBean.myMap[item]}" /> 
    </rich:column> 
    </rich:extendedDataTable> 
+0

Это должно работать, и я не беспокоюсь о заказе. Я попробую завтра, и если это сработает, я обязательно отвечу. Спасибо! – Neeko

Смежные вопросы