Example usage for org.springframework.web.method.support ModelAndViewContainer setRequestHandled

List of usage examples for org.springframework.web.method.support ModelAndViewContainer setRequestHandled

Introduction

In this page you can find the example usage for org.springframework.web.method.support ModelAndViewContainer setRequestHandled.

Prototype

public void setRequestHandled(boolean requestHandled) 

Source Link

Document

Whether the request has been handled fully within the handler, e.g.

Usage

From source file:com.zuoxiaolong.blog.common.web.JsonHandlerMethodReturnValueHandler.java

@Override
public void handleReturnValue(Object returnValue, MethodParameter returnType,
        ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {
    mavContainer.setRequestHandled(true);
    HttpServletResponse httpServletResponse = webRequest.getNativeResponse(HttpServletResponse.class);
    httpServletResponse.setContentType(CONTENT_TYPE);
    ServletServerHttpResponse outputMessage = new ServletServerHttpResponse(httpServletResponse);
    JsonResponse jsonResponse = new JsonResponse(returnValue);
    outputMessage.getBody().write(StringUtils.toBytes(JsonUtils.toJson(jsonResponse)));
    outputMessage.getBody().flush();/*from   w  w  w.  j  a v a 2  s.c om*/
}

From source file:io.jmnarloch.spring.boot.rxjava.mvc.ObservableReturnValueHandler.java

@SuppressWarnings("unchecked")
@Override//from  w ww  .  ja v a2  s.  c  o m
public void handleReturnValue(Object returnValue, MethodParameter returnType,
        ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {

    if (returnValue == null) {
        mavContainer.setRequestHandled(true);
        return;
    }

    final Observable<?> observable = Observable.class.cast(returnValue);
    WebAsyncUtils.getAsyncManager(webRequest)
            .startDeferredResultProcessing(new ObservableDeferredResult(observable), mavContainer);
}

From source file:io.jmnarloch.spring.boot.rxjava.mvc.SingleReturnValueHandler.java

@SuppressWarnings("unchecked")
@Override//w  ww  .  jav  a 2s . c o  m
public void handleReturnValue(Object returnValue, MethodParameter returnType,
        ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {

    if (returnValue == null) {
        mavContainer.setRequestHandled(true);
        return;
    }

    final Single<?> single = Single.class.cast(returnValue);
    WebAsyncUtils.getAsyncManager(webRequest).startDeferredResultProcessing(new SingleDeferredResult(single),
            mavContainer);
}

From source file:com.kixeye.chassis.transport.http.ListenableFutureReturnValueHandler.java

@Override
public void handleReturnValue(Object returnValue, MethodParameter returnType,
        ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {
    if (returnValue == null) {
        mavContainer.setRequestHandled(true);
        return;/*from w  w w.j a  v  a 2 s  .com*/
    }
    final DeferredResult<Object> deferredResult = new DeferredResult<>();
    Futures.addCallback((ListenableFuture<?>) returnValue, new FutureCallback<Object>() {
        @Override
        public void onSuccess(@Nullable Object result) {
            deferredResult.setResult(result);
        }

        @Override
        public void onFailure(Throwable t) {
            deferredResult.setErrorResult(t);
        }
    });
    WebAsyncUtils.getAsyncManager(webRequest).startDeferredResultProcessing(deferredResult, mavContainer);
}

From source file:fi.minedu.oiva.backend.spring.handler.CompletionStageReturnValueHandler.java

@SuppressWarnings("unchecked")
@Override/* ww w  .j av a  2  s  .  c o  m*/
public void handleReturnValue(Object returnValue, MethodParameter returnType,
        ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {
    if (returnValue == null) {
        mavContainer.setRequestHandled(true);
        return;
    }

    final DeferredResult<Object> deferredResult = new DeferredResult<>();
    WebAsyncUtils.getAsyncManager(webRequest).startDeferredResultProcessing(deferredResult, mavContainer);

    CompletionStage<?> future = (CompletionStage<?>) returnValue;
    future.whenComplete((result, ex) -> {
        if (ex != null) {
            deferredResult.setErrorResult(ex);
        } else {
            deferredResult.setResult(result);
        }
    });
}

From source file:com.kixeye.chassis.transport.http.ObserableReturnValueHandler.java

@Override
public void handleReturnValue(Object returnValue, MethodParameter returnType,
        ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {
    if (returnValue == null) {
        mavContainer.setRequestHandled(true);
        return;//  w  ww. jav a 2 s .  c om
    }
    final DeferredResult<Object> deferredResult = new DeferredResult<>();
    ((Observable<?>) returnValue).subscribe(new Observer<Object>() {
        @Override
        public void onCompleted() {
            if (!deferredResult.hasResult()) {
                logger.error("onComplete before onNext");
                deferredResult.setResult(null);
            }
        }

        @Override
        public void onError(Throwable e) {
            deferredResult.setErrorResult(e);
        }

        @Override
        public void onNext(Object args) {
            deferredResult.setResult(args);
        }
    });
    WebAsyncUtils.getAsyncManager(webRequest).startDeferredResultProcessing(deferredResult, mavContainer);
}

From source file:com.ufukuzun.myth.dialect.handler.AjaxRequestResponseBodyReturnValueHandler.java

@Override
public void handleReturnValue(Object returnValue, MethodParameter returnType,
        ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {
    mavContainer.setRequestHandled(true);

    if (returnValue != null && AjaxResponse.class.isInstance(returnValue)) {
        AjaxResponse ajaxResponse = (AjaxResponse) returnValue;
        HttpServletResponse response = (HttpServletResponse) webRequest.getNativeResponse();
        HttpServletRequest request = (HttpServletRequest) webRequest.getNativeRequest();

        ModelAndView modelAndView = ajaxResponse.getModelAndView();

        Map<String, Object> mavContainerAttributes = new LinkedHashMap<String, Object>();
        mavContainerAttributes.putAll(mavContainer.getModel());
        modelAndView.getModelMap().mergeAttributes(mavContainerAttributes);

        returnValue = myth.response(ajaxResponse.getAjaxRequest(), modelAndView, response, request);

        writeWithMessageConverters(returnValue, returnType, webRequest);
    }/* ww w  .  j  av a2 s.c  o m*/
}

From source file:org.makersoft.mvc.method.annotation.FormatHandlerMethodReturnValueHandler.java

@Override
public void handleReturnValue(Object returnValue, MethodParameter returnType,
        ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {

    mavContainer.setRequestHandled(true);
    if (returnValue != null) {
        writeWithJSONSerialize(returnValue, returnType, webRequest);
    }/*ww  w  .j a  v  a2s  .  c  om*/

}

From source file:com.github.zhanhb.download.spring.PathDownloaderHandler.java

@Override
public void handleReturnValue(Object returnValue, MethodParameter returnType,
        ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {
    HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
    HttpServletResponse response = webRequest.getNativeResponse(HttpServletResponse.class);
    ToDownload toDownload = returnType.getMethodAnnotation(ToDownload.class);

    PathPartial d = toDownload.attachment() ? downloader : viewer;
    d.service(request, response, Path.class.cast(returnValue));
    mavContainer.setRequestHandled(true);
}

From source file:com.sishuok.bigpipe.handler.BigpipeTaskReturnValueHandler.java

@Override
public void handleReturnValue(final Object returnValue, final MethodParameter returnType,
        final ModelAndViewContainer mavContainer, final NativeWebRequest webRequest) throws Exception {

    final BigPipeTask bigPipeTask = (BigPipeTask) returnValue;

    final HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
    final HttpServletResponse response = webRequest.getNativeResponse(HttpServletResponse.class);

    final DeferredResult<Void> deferredResult = new DeferredResult<Void>();

    mavContainer.setRequestHandled(true);

    WebAsyncUtils.getAsyncManager(request).startDeferredResultProcessing(deferredResult, mavContainer);

    final BigPipeContext context = new BigPipeContext(request.getContextPath(), bigPipeTask.getModel());

    //?pagelet? ?
    final String framePageletName = bigPipeTask.getFramePageletName();
    final Pagelet framePagelet = pageletFinder.find(framePageletName);
    Assert.notNull(framePagelet, framePageletName + " pagelet not exists");

    final BigPipeContext frameContext = context.copy();
    final PageletResult framePageletResult = framePagelet.run(frameContext, response);
    final PageletView framePageletView = pageletViewResolver.resolve(framePageletResult);
    framePageletView.render(frameContext, response);

    final AtomicInteger counter = new AtomicInteger(bigPipeTask.getPageletNames().size());
    //?Npagelet?/*from w  w  w . j a  v  a 2s .c o m*/
    for (String otherPageletName : bigPipeTask.getPageletNames()) {
        final Pagelet pagelet = pageletFinder.find(otherPageletName);
        Assert.notNull(pagelet, otherPageletName + " pagelet not exists");

        //???
        executor.execute(new Runnable() {
            @Override
            public void run() {
                try {
                    final BigPipeContext pageletContext = context.copy();
                    final PageletResult pageletResult = pagelet.run(pageletContext, response);
                    final PageletView pageletView = pageletViewResolver.resolve(pageletResult);
                    pageletView.render(pageletContext, response);
                } catch (Exception e) {
                    e.printStackTrace();
                    //
                }
                if (counter.decrementAndGet() <= 0) {
                    deferredResult.setResult(null);
                }
            }
        });
    }
}