1) package com.uk.oval; import java.io.IOException; import java.io.Writer; import javax.faces.component.UIComponent; import com.ibm.xsp.component.xp.XspSelectOneMenu; import javax.faces.context.FacesContext; import com.ibm.xsp.renderkit.html_basic.MenuRenderer; public class SelectOneRenderer extends MenuRenderer { public void encodeEnd(FacesContext context, UIComponent component) throws IOException { Writer writer = context.getResponseWriter(); XspSelectOneMenu obj = (XspSelectOneMenu) component; //if in read mode just print out the value if (obj.isReadonly()) { writer.write(obj.getValue().toString()); } else { //if in edit mode then call the parent method to output as normal super.encodeEnd(context, component); } } } 2) <render-kit> <renderer> <component-family>javax.faces.SelectOne</component-family> <renderer-type>com.uk.oval.type.SelectOneRenderer</renderer-type> <renderer-class>com.uk.oval.SelectOneRenderer</renderer-class> </renderer> </render-kit> 3) <control> <name>ComboBox</name> <property> <name>rendererType</name> <value>com.uk.oval.type.SelectOneRenderer</value> </property> </control>