code: @Override
  	public void paint(final RenderContext renderContext) {
  		WebXmlRenderContext webRenderContext = (WebXmlRenderContext) renderContext;
  		XmlStringBuilder xml = webRenderContext.getWriter();
  		AjaxOperation operation = AjaxHelper.getCurrentOperation();
  
  		if (operation == null) {
  			// the request attribute that we place in the ui contenxt in the action phase can't be null
  			throw new SystemException(
  					"Can't paint AJAX response. Couldn't find the expected reference to the AjaxOperation.");
  		}
  
  		UIContext uic = UIContextHolder.getCurrent();
  		String focusId = uic.getFocussedId();
  
  		xml.append(XMLUtil.getXMLDeclarationWithThemeXslt(uic));
  		xml.appendTagOpen("ui:ajaxresponse");
  		xml.append(XMLUtil.STANDARD_NAMESPACES);
  		xml.appendOptionalAttribute("defaultFocusId", uic.isFocusRequired() && !Util.empty(focusId),
  				focusId);
  		xml.appendClose();
  
  		getBackingComponent().paint(renderContext);
  
  		xml.appendEndTag("ui:ajaxresponse");
  	}
docs: Paints the targeted ajax regions. The format of the response is an agreement between the server and the client
  side handling our AJAX response.
  
  @param renderContext the renderContext to send the output to.