Example usage for org.springframework.web.servlet View SELECTED_CONTENT_TYPE

List of usage examples for org.springframework.web.servlet View SELECTED_CONTENT_TYPE

Introduction

In this page you can find the example usage for org.springframework.web.servlet View SELECTED_CONTENT_TYPE.

Prototype

String SELECTED_CONTENT_TYPE

To view the source code for org.springframework.web.servlet View SELECTED_CONTENT_TYPE.

Click Source Link

Document

The org.springframework.http.MediaType selected during content negotiation, which may be more specific than the one the View is configured with.

Usage

From source file:org.beadle.framework.view.ReturnTypeViewResolver.java

private View getBestView(List<View> candidateViews, List<MediaType> requestedMediaTypes,
        RequestAttributes attrs) {/*from   w w w  .  j  a  v a  2 s .c o  m*/
    HttpServletRequest request = ((ServletRequestAttributes) attrs).getRequest();
    for (View candidateView : candidateViews) {
        if (StringUtils.hasText(candidateView.getContentType())) {
            ModelAndView mv = (ModelAndView) request.getAttribute("ModelAndView");
            //message...
            Object result = mv.getModelMap().get("message");
            MediaType candidateContentType = MediaType.parseMediaType(candidateView.getContentType());
            if (result == null && candidateContentType.isCompatibleWith(MediaType.TEXT_HTML)) {
                if (logger.isDebugEnabled()) {
                    logger.debug("Returning [" + candidateView + "] based on requested media type '"
                            + candidateContentType + "'");
                }
                attrs.setAttribute(View.SELECTED_CONTENT_TYPE, candidateContentType,
                        RequestAttributes.SCOPE_REQUEST);
                return candidateView;
            } else if (result != null && candidateContentType.isCompatibleWith(MediaType.APPLICATION_JSON)) {
                if (logger.isDebugEnabled()) {
                    logger.debug("Returning [" + candidateView + "] based on requested media type '"
                            + candidateContentType + "'");
                }
                attrs.setAttribute(View.SELECTED_CONTENT_TYPE, candidateContentType,
                        RequestAttributes.SCOPE_REQUEST);
                return candidateView;
            }
        }
    }
    return null;
}

From source file:org.springframework.web.servlet.view.ContentNegotiatingViewResolver.java

private View getBestView(List<View> candidateViews, List<MediaType> requestedMediaTypes,
        RequestAttributes attrs) {/*  w  w  w .j  a  v a  2s.c o  m*/
    for (View candidateView : candidateViews) {
        if (candidateView instanceof SmartView) {
            SmartView smartView = (SmartView) candidateView;
            if (smartView.isRedirectView()) {
                if (logger.isDebugEnabled()) {
                    logger.debug("Returning redirect view [" + candidateView + "]");
                }
                return candidateView;
            }
        }
    }
    for (MediaType mediaType : requestedMediaTypes) {
        for (View candidateView : candidateViews) {
            if (StringUtils.hasText(candidateView.getContentType())) {
                MediaType candidateContentType = MediaType.parseMediaType(candidateView.getContentType());
                if (mediaType.isCompatibleWith(candidateContentType)) {
                    if (logger.isDebugEnabled()) {
                        logger.debug("Returning [" + candidateView + "] based on requested media type '"
                                + mediaType + "'");
                    }
                    attrs.setAttribute(View.SELECTED_CONTENT_TYPE, mediaType, RequestAttributes.SCOPE_REQUEST);
                    return candidateView;
                }
            }
        }
    }
    return null;
}