Hi,
I am trying to set default selected values for a selectManyCheckbox dynamically.
In my sample code I am adding three check boxes dynamically to the
f:selectItem and also trying to set first check box as default selected.
The following is my code.
jsf page
---------
<?xml version='1.0' encoding='windows-1252'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<jsp:directive.page contentType="text/html;charset=windows-1252"/>
<f:view>
<af:document id="d2" binding="#{backing_components_testCheckBox.d2}">
<af:form id="f2" binding="#{backing_components_testCheckBox.f2}">
<af:selectManyCheckbox label="CheckBox"
binding="#{backing_components_testCheckBox.smc1}"
id="smc1"
value="#{backing_components_testCheckBox.defaultSelectedItems}">
<f:selectItems value="#{backing_components_testCheckBox.selectItems}"
binding="#{backing_components_testCheckBox.si1}"
id="si1"/>
</af:selectManyCheckbox>
</af:form>
</af:document>
</f:view>
</jsp:root>
managedBean
------------------------
import java.util.ArrayList;
import javax.faces.component.UISelectItems;
import javax.faces.model.SelectItem;
import oracle.adf.view.rich.component.rich.RichDocument;
import oracle.adf.view.rich.component.rich.RichForm;
import oracle.adf.view.rich.component.rich.input.RichSelectManyCheckbox;
public class TestCheckBox {
private RichForm f2;
private RichDocument d2;
private ArrayList<SelectItem> selectItems = new ArrayList<SelectItem>();
private ArrayList<SelectItem> defaultSelectedItems = new ArrayList<SelectItem>();
private RichSelectManyCheckbox smc1;
private UISelectItems si1;
public void setF2(RichForm f2) {
this.f2 = f2;
}
public RichForm getF2() {
return f2;
}
public void setD2(RichDocument d2) {
this.d2 = d2;
}
public RichDocument getD2() {
return d2;
}
public ArrayList<SelectItem> getSelectItems() {
SelectItem s1 = new SelectItem();
s1.setValue("one");
selectItems.add(s1);
SelectItem s2 = new SelectItem();
s2.setValue("Two");
selectItems.add(s2);
SelectItem s3 = new SelectItem();
s3.setValue("Thtee");
selectItems.add(s3);
return selectItems;
}
public void setSmc1(RichSelectManyCheckbox smc1) {
this.smc1 = smc1;
}
public RichSelectManyCheckbox getSmc1() {
return smc1;
}
public void setSi1(UISelectItems si1) {
this.si1 = si1;
}
public UISelectItems getSi1() {
return si1;
}
public void setDefaultSelectedItems(ArrayList<SelectItem> selectedItems) {
this.defaultSelectedItems = selectedItems;
}
public ArrayList<SelectItem> getDefaultSelectedItems() {
SelectItem s1 = new SelectItem();
s1.setValue("one");
defaultSelectedItems.add(s1);
return defaultSelectedItems;
}
}
When I try to run this code, i am getting the following exception. Please help me to resolve it
javax.faces.convert.ConverterException: Unsupported model type.
at oracle.adfinternal.view.faces.renderkit.rich.SimpleSelectManyRenderer._throwUnsupportedModelType(SimpleSelectManyRenderer.java:579)
at oracle.adfinternal.view.faces.renderkit.rich.SimpleSelectManyRenderer.getDefaultConverter(SimpleSelectManyRenderer.java:168)
at oracle.adfinternal.view.faces.renderkit.rich.SimpleSelectBaseRenderer._renderContent(SimpleSelectBaseRenderer.java:190)
at oracle.adfinternal.view.faces.renderkit.rich.SimpleSelectBaseRenderer.renderElementContent(SimpleSelectBaseRenderer.java:113)
at oracle.adfinternal.view.faces.renderkit.rich.FormInputRenderer.encodeAllAsElement(FormInputRenderer.java:149)
Truncated. see log file for complete stacktrace