private void paintContainerResponse(final RenderContext renderContext,
			final AjaxOperation operation) {
		WebXmlRenderContext webRenderContext = (WebXmlRenderContext) renderContext;
		XmlStringBuilder xml = webRenderContext.getWriter();

		// Get trigger's context
		ComponentWithContext trigger = AjaxHelper.getCurrentTriggerAndContext();
		if (trigger == null) {
			throw new SystemException("No context available for trigger " + operation.getTriggerId());
		}

		xml.appendTagOpen("ui:ajaxtarget");
		xml.appendAttribute("id", operation.getTargetContainerId());
		xml.appendAttribute("action", AjaxOperation.AjaxAction.REPLACE_CONTENT.getDesc());
		xml.appendClose();

		// Paint targets - Assume targets are in the same context as the trigger
		UIContextHolder.pushContext(trigger.getContext());
		try {
			for (String targetId : operation.getTargets()) {
				ComponentWithContext target;
				if (targetId.equals(operation.getTriggerId())) {
					target = trigger;
				} else {
					target = WebUtilities.getComponentById(targetId, true);
					if (target == null) {
						LOG.warn("Could not find ajax target to render [" + targetId + "]");
						continue;
					}
				}
				target.getComponent().paint(renderContext);
			}
		} finally {
			UIContextHolder.popContext();
		}

		xml.appendEndTag("ui:ajaxtarget");
	}
private void paintContainerResponse ( final RenderContext renderContext , final AjaxOperation operation ) { WebXmlRenderContext webRenderContext = ( WebXmlRenderContext ) renderContext ; XmlStringBuilder xml = webRenderContext . getWriter ( ) ; ComponentWithContext trigger = AjaxHelper . getCurrentTriggerAndContext ( ) ; if ( trigger == null ) { throw new SystemException ( "No context available for trigger " + operation . getTriggerId ( ) ) ; } xml . appendTagOpen ( "ui:ajaxtarget" ) ; xml . appendAttribute ( "id" , operation . getTargetContainerId ( ) ) ; xml . appendAttribute ( "action" , AjaxOperation . AjaxAction . REPLACE_CONTENT . getDesc ( ) ) ; xml . appendClose ( ) ; UIContextHolder . pushContext ( trigger . getContext ( ) ) ; try { for ( String targetId : operation . getTargets ( ) ) { ComponentWithContext target ; if ( targetId . equals ( operation . getTriggerId ( ) ) ) { target = trigger ; } else { target = WebUtilities . getComponentById ( targetId , true ) ; if ( target == null ) { LOG . warn ( "Could not find ajax target to render [" + targetId + "]" ) ; continue ; } } target . getComponent ( ) . paint ( renderContext ) ; } } finally { UIContextHolder . popContext ( ) ; } xml . appendEndTag ( "ui:ajaxtarget" ) ; }
Paint the ajax container response.

@param renderContext the render context
@param operation the ajax operation