尝试使用primefaces 4.0设置selectCheckboxMenu中的值
/我的xhtml代码/
<p:selectCheckboxMenu value="#{A.b}" label="C" valueChangeListener="#{myValidator.validate}">
<f:selectItems value="#{d.availableItems}"/>
<p:ajax update="some_id"/>
</p:selectCheckboxMenu>
/ myValidator /
public void validate(ValueChangeEvent event){
Object[] oldValues = ((Object[]) event.getOldValue());
SelectCheckboxMenu input = (SelectCheckboxMenu)event.getComponent();
input.setSelectedValues(oldValues);
}
by I get a strange error
javax.faces.component.UpdateModelException: java.lang.IllegalArgumentException: Cannot convert [Ljava.lang.Object;@40bb23 of type class [Ljava.lang.Object; to interface java.util.List
at javax.faces.component.UIInput.updateModel(UIInput.java:867)
通过向bean设置器中添加验证方法解决了问题。