Example usage for org.springframework.web.servlet.view.json MappingJackson2JsonView MappingJackson2JsonView

List of usage examples for org.springframework.web.servlet.view.json MappingJackson2JsonView MappingJackson2JsonView

Introduction

In this page you can find the example usage for org.springframework.web.servlet.view.json MappingJackson2JsonView MappingJackson2JsonView.

Prototype

public MappingJackson2JsonView(ObjectMapper objectMapper) 

Source Link

Document

Construct a new MappingJackson2JsonView using the provided ObjectMapper and setting the content type to application/json .

Usage

From source file:org.bremersee.common.spring.autoconfigure.WebMvcExceptionResolver.java

@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
        Exception ex) {/*w ww.j a v  a 2  s . c o  m*/

    if (ex == null || !isRestController(handler)) {
        return null;
    }

    final Object dto = getExceptionMapper(handler).toDto(ex);
    if (dto == null) {
        return null;
    }

    ModelAndView mav;

    String acceptStr = request.getHeader("Accept") == null ? "" : request.getHeader("Accept").toLowerCase();
    if (log.isDebugEnabled()) {
        log.debug("Handler [" + handler + "] got accept header [" + acceptStr + "] from client.");
    }
    if (acceptStr.contains("application/xml") || acceptStr.contains("text/xml")) {

        MarshallingView mv = new MarshallingView(marshaller);
        mv.setModelKey(DTO_KEY);
        mav = new ModelAndView(mv, DTO_KEY, dto);
        response.setContentType(MediaType.APPLICATION_XML_VALUE);

    } else {

        final MappingJackson2JsonView mjv = new MappingJackson2JsonView(objectMapper);
        mav = new ModelAndView(mjv);
        final Map<String, Object> map = toJsonMap(dto);
        mav.addAllObjects(map);
        if (acceptStr.contains("text/plain")) {
            response.setContentType(MediaType.TEXT_PLAIN_VALUE);
        } else {
            response.setContentType(MediaType.APPLICATION_JSON_VALUE);
        }
    }

    Integer statusCode = determineStatusCode(ex);
    applyStatusCodeIfPossible(request, response, statusCode);

    return mav;
}