У меня есть этот код на моей странице JSP:Я получаю «Значение не является допустимым вариантом» для SelectManyCheckBox
<h:selectManyCheckbox id="chb" value="#{MyBean.selectedCheckBoxes}" layout="pageDirection">
<f:selectItems value="#{MyBean.checkBoxItems}"/>
</h:selectManyCheckbox>
И в моем MyBean:
public class MyBean {
public MyBean() {
for (Elem section : sections) {
checkBoxItems.put(section.getName(), section.getObjectID());
}
}
private String[] selectedCheckBoxes;
private Map<String, Object> checkBoxItems = new LinkedHashMap<String, Object>();
public String save() {
//save is not being executed....
return FORWARD;
}
public Map<String, Object> getCheckBoxItems() {
return checkBoxItems;
}
public void setCheckBoxItems(Map<String, Object> checkBoxItems) {
this.checkBoxItems = checkBoxItems;
}
public String[] getSelectedCheckBoxes() {
return selectedCheckBoxes;
}
public void setSelectedCheckBoxes(String[] selectedCheckBoxes) {
this.selectedCheckBoxes = selectedCheckBoxes;
}
}
Когда я нажимаю сохранить его , дает следующее сообщение: <t:message for="chb"/>
"chb": Недействительный параметр.
Несмотря на то, что я не добавить атрибут required
для h:selectManyCheckbox
, он пытается подтвердить или делать что-то другое ... я изменил checkBoxItems
тип переменной (с геттер/сеттеры) в List<SelectItem>
, но он не работает. Что может быть причиной, как я могу ее решить?
PS: Я использую JSF 1.1
Спасибо, мистер Бауке. В моем случае' section.getObjectID() 'возвращает' Integer'. Должен ли я работать с настраиваемыми типами, где я могу реализовать 'equals()' .... Я изменил свой код на здесь, это сторона Java: http: //pastebin.com/jxnFGDQZ, и это мой JSP-файл http://pastebin.com/7T2yzP55. Однако все же одно и то же сообщение ... –
Нет, 'Integer' в порядке. Вы должны подавать только конвертер. Я обновлю ответ. – BalusC
Большое спасибо, сэр ...ты обалденный!!! –