Search in sources :

Example 1 with RedirectModelManager

use of cn.taketoday.web.view.RedirectModelManager in project today-framework by TAKETODAY.

the class ModelParameterResolver method resolveParameter.

/**
 * Resolve {@link Model} parameter.
 */
@Override
public Object resolveParameter(RequestContext context, ResolvableMethodParameter resolvable) throws Throwable {
    if (resolvable.isAssignableTo(RedirectModel.class)) {
        // RedirectModel
        RedirectModel redirectModel = new RedirectModel();
        RedirectModelManager modelManager = getModelManager();
        // @since 3.0.3 checking model manager
        if (modelManager != null) {
            context.setAttribute(RedirectModel.OUTPUT_ATTRIBUTE, redirectModel);
            modelManager.saveRedirectModel(context, redirectModel);
        }
        return redirectModel;
    }
    if (resolvable.isAssignableTo(ModelAndView.class)) {
        return context.modelAndView();
    }
    // @since 3.0
    if (resolvable.is(HttpHeaders.class)) {
        return context.requestHeaders();
    }
    if (resolvable.is(Map.class)) {
        // Model Map
        return context.asMap();
    }
    return context;
}
Also used : RedirectModel(cn.taketoday.web.view.RedirectModel) RedirectModelManager(cn.taketoday.web.view.RedirectModelManager)

Aggregations

RedirectModel (cn.taketoday.web.view.RedirectModel)1 RedirectModelManager (cn.taketoday.web.view.RedirectModelManager)1