Example usage for org.springframework.web.servlet SmartView isRedirectView

List of usage examples for org.springframework.web.servlet SmartView isRedirectView

Introduction

In this page you can find the example usage for org.springframework.web.servlet SmartView isRedirectView.

Prototype

boolean isRedirectView();

Source Link

Document

Whether the view performs a redirect.

Usage

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

private View getBestView(List<View> candidateViews, List<MediaType> requestedMediaTypes,
        RequestAttributes attrs) {//from  w ww .  j av  a  2s. c  om
    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;
}