Вы можете привязать массив String[]
следующим образом:
public class CheckSelector {
private String[] chosen;
public String[] getChosen() { return chosen; }
public void setChosen(String[] chosen) { this.chosen = chosen; }
public SelectItem[] getChoices() {
return new SelectItem[] { new SelectItem("1"), new SelectItem("2"),
new SelectItem("3") };
}
}
Значение selectManyCheckbox
должно быть привязано к chosen
. Кроме того, вы можете использовать List
:
public class CheckSelector {
private List<String> chosen;
public List<String> getChosen() { return chosen; }
public void setChosen(List<String> chosen) { this.chosen = chosen; }
public List<SelectItem> getChoices() {
return Arrays.asList(new SelectItem("1"), new SelectItem("2"),
new SelectItem("3"));
}
}
Точные правила поддержки значений перечислены в javadoc :
- Если к компоненту прикреплен
Converter
, используйте его.
- Если нет, ищите значение
ValueExpression
(если оно есть). ValueExpression
должен указывать на то, что:
- Массив примитивов (например,
int[]
). Найдите зарегистрированный подкласс Converter
для этого примитивного типа.
- Массив объектов (например,
Integer[]
или String[]
). Найдите зарегистрированный подкласс Converter
для базового типа элемента.
- A
java.util.List
. Предположим, что тип элемента java.lang.String
, поэтому преобразование не требуется.
- Если по какой-либо причине
Converter
не может быть найден, предположим, что тип является массивом String
.