Example usage for org.springframework.web.servlet.view.xml MarshallingView MarshallingView

List of usage examples for org.springframework.web.servlet.view.xml MarshallingView MarshallingView

Introduction

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

Prototype

public MarshallingView(Marshaller marshaller) 

Source Link

Document

Constructs a new MarshallingView with the given Marshaller set.

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  om*/

    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;
}

From source file:com.devnexus.ting.web.config.WebConfig.java

@Bean
public ViewResolver contentNegotiatingViewResolver(ContentNegotiationManager manager) {
    final List<ViewResolver> resolvers = new ArrayList<ViewResolver>();

    final BeanNameViewResolver r1 = new BeanNameViewResolver();

    final InternalResourceViewResolver r2 = new InternalResourceViewResolver();
    r2.setPrefix("/WEB-INF/jsp/");
    r2.setSuffix(".jsp");
    r2.setViewClass(JstlView.class);

    resolvers.add(r1);/*  ww w  .  j  av  a2  s. c o m*/
    resolvers.add(r2);

    final ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver();
    resolver.setViewResolvers(resolvers);
    resolver.setContentNegotiationManager(manager);

    final List<View> defaultViews = new ArrayList<View>(2);

    final MarshallingView marshallingView = new MarshallingView(jaxbMarshaller);
    final MappingJackson2JsonView mappingJackson2JsonView = new MappingJackson2JsonView();
    mappingJackson2JsonView.setObjectMapper(jaxbJacksonObjectMapper());

    defaultViews.add(mappingJackson2JsonView);
    defaultViews.add(marshallingView);

    resolver.setDefaultViews(defaultViews);
    resolver.setOrder(1);
    return resolver;
}