code: protected void renderOption(ResponseWriter rw, UISelectItem selectItem, String[] selectedOption, int index)
  			throws IOException {
  
  		String itemLabel = selectItem.getItemLabel();
  		final String itemDescription = selectItem.getItemDescription();
  		final Object itemValue = selectItem.getItemValue();
  
  		boolean isItemLabelBlank = itemLabel == null || itemLabel.trim().length() == 0;
  		itemLabel = isItemLabelBlank ? "&nbsp;" : itemLabel;
  
  		renderOption(rw, selectedOption, index, itemLabel, itemDescription, itemValue);
  	}
docs: Renders a single &lt;option&gt; tag. For some reason,
  <code>SelectItem</code> and <code>UISelectItem</code> don't share a
  common interface, so this method is repeated twice.
  
  @param rw
  The response writer
  @param selectItem
  The current SelectItem
  @param selectedOption
  the currently selected option
  @throws IOException
  thrown if something's wrong with the response writer