protected String buildRequest(FacesContext context, CommandButton button, String clientId) throws FacesException {
RequestContext requestContext = RequestContext.getCurrentInstance(context);
boolean csvEnabled = requestContext.getApplicationContext().getConfig().isClientSideValidationEnabled() && button.isValidateClient();
String request = null;
boolean ajax = button.isAjax();
if (ajax) {
request = buildAjaxRequest(context, button, null);
}
else {
UIComponent form = ComponentTraversalUtils.closestForm(context, button);
if (form == null) {
throw new FacesException("CommandButton : \"" + clientId + "\" must be inside a form element");
}
request = buildNonAjaxRequest(context, button, form, null, false);
}
if (csvEnabled) {
CSVBuilder csvb = requestContext.getCSVBuilder();
request = csvb.init().source("this").ajax(ajax).process(button, button.getProcess()).update(button, button.getUpdate()).command(request).build();
}
return request;
}