Example usage for org.springframework.web.bind MissingServletRequestParameterException getParameterType

List of usage examples for org.springframework.web.bind MissingServletRequestParameterException getParameterType

Introduction

In this page you can find the example usage for org.springframework.web.bind MissingServletRequestParameterException getParameterType.

Prototype

public final String getParameterType() 

Source Link

Document

Return the expected type of the offending parameter.

Usage

From source file:org.broadleafcommerce.core.web.api.BroadleafSpringRestExceptionMapper.java

@ExceptionHandler(MissingServletRequestParameterException.class)
public @ResponseBody ErrorWrapper handleMissingServletRequestParameterException(HttpServletRequest request,
        HttpServletResponse response, Exception ex) {
    ErrorWrapper errorWrapper = (ErrorWrapper) context.getBean(ErrorWrapper.class.getName());
    Locale locale = null;/*from   w ww  .  ja v a 2  s . c  om*/
    String parameterType = null;
    String parameterName = null;
    BroadleafRequestContext requestContext = BroadleafRequestContext.getBroadleafRequestContext();
    if (requestContext != null) {
        locale = requestContext.getJavaLocale();
    }
    if (ex instanceof MissingServletRequestParameterException) {
        MissingServletRequestParameterException castedException = (MissingServletRequestParameterException) ex;
        parameterType = castedException.getParameterType();
        parameterName = castedException.getParameterName();
    }

    LOG.error("An error occured invoking a REST service", ex);
    if (locale == null) {
        locale = Locale.getDefault();
    }
    if (parameterType == null) {
        parameterType = "String";
    }
    if (parameterName == null) {
        parameterName = "[unknown name]";
    }
    errorWrapper.setHttpStatusCode(HttpStatus.SC_BAD_REQUEST);
    response.setStatus(resolveResponseStatusCode(ex, errorWrapper));
    ErrorMessageWrapper errorMessageWrapper = (ErrorMessageWrapper) context
            .getBean(ErrorMessageWrapper.class.getName());
    errorMessageWrapper
            .setMessageKey(resolveClientMessageKey(BroadleafWebServicesException.QUERY_PARAMETER_NOT_PRESENT));
    errorMessageWrapper
            .setMessage(messageSource.getMessage(BroadleafWebServicesException.QUERY_PARAMETER_NOT_PRESENT,
                    new String[] { parameterType, parameterName },
                    BroadleafWebServicesException.QUERY_PARAMETER_NOT_PRESENT, locale));
    errorWrapper.getMessages().add(errorMessageWrapper);

    return errorWrapper;
}