У меня есть комбо на моей странице, которое я хочу заполнить некоторыми ключевыми словами из конфигурации. Я хочу использовать управляемый компонент для его выполнения.Population selectItems combobox (label, value) с использованием управляемого компонента
Предположим, что у меня есть bean, называемый Config, где есть поле категорий List. ..
public class Configuration implements Serializable {
private static final long serialVersionUID = 1L;
private List<String> categories;
public List<String> getCategories() {
if (categories == null)
categories = getCats();
return categories;
}
//... etc.
}
Когда я использую это поле для моего комбо, он хорошо работает ...
<xp:comboBox>
<xp:selectItems>
<xp:this.value><![CDATA[#{config.categories}]]></xp:this.value>
</xp:selectItems>
</xp:comboBox>
Но это только список ярлыков. Мне тоже нужны ценности. Как заполнить selectItems моей комбо с двумя строками - меткой и значением?
EDIT:
Я попытался создать объект Combo с ярлыка и полей значений и использовать повторение в моей ComboBox.
<xp:comboBox>
<xp:repeat id="repeat1" value="#{config.combo}" var="c" rows="30">
<xp:selectItem itemLabel="#{c.label}" itemValue="#{c.value}" />
</xp:repeat>
</xp:comboBox>
До сих пор не работает ... :-(
Используйте трубу ('|') разделитель ... например 'someList.add (« Я - метка | Я - значение »);' –
Хорошо, труба работает, но это глупое решение. Что делать, если строка ключевого слова содержит символ канала? Разве нет другого решения с использованием простого объекта и какого-то конвертера? – JiKra
Я бы не назвал это глупо. Более традиция заключается в том, что разделение ярлыка и значения по каналам часто встречается в Notes уже на протяжении десятилетий, например. для выбора списка диалогов. У вас все еще есть возможность заменить трубку в ваших данных на другой символ. Но, честно говоря, какие данные содержат трубу по своей природе? –