Java Code Examples for org.springframework.web.servlet.ModelAndView#setView()
The following examples show how to use
org.springframework.web.servlet.ModelAndView#setView() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RequestMappingHandlerAdapter.java From spring4-understanding with Apache License 2.0 | 6 votes |
private ModelAndView getModelAndView(ModelAndViewContainer mavContainer, ModelFactory modelFactory, NativeWebRequest webRequest) throws Exception { modelFactory.updateModel(webRequest, mavContainer); if (mavContainer.isRequestHandled()) { return null; } ModelMap model = mavContainer.getModel(); ModelAndView mav = new ModelAndView(mavContainer.getViewName(), model); if (!mavContainer.isViewReference()) { mav.setView((View) mavContainer.getView()); } if (model instanceof RedirectAttributes) { Map<String, ?> flashAttributes = ((RedirectAttributes) model).getFlashAttributes(); HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class); RequestContextUtils.getOutputFlashMap(request).putAll(flashAttributes); } return mav; }
Example 2
Source File: RequestMappingHandlerAdapter.java From spring-analysis-note with MIT License | 6 votes |
@Nullable private ModelAndView getModelAndView(ModelAndViewContainer mavContainer, ModelFactory modelFactory, NativeWebRequest webRequest) throws Exception { modelFactory.updateModel(webRequest, mavContainer); if (mavContainer.isRequestHandled()) { return null; } ModelMap model = mavContainer.getModel(); ModelAndView mav = new ModelAndView(mavContainer.getViewName(), model, mavContainer.getStatus()); if (!mavContainer.isViewReference()) { mav.setView((View) mavContainer.getView()); } if (model instanceof RedirectAttributes) { Map<String, ?> flashAttributes = ((RedirectAttributes) model).getFlashAttributes(); HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class); if (request != null) { RequestContextUtils.getOutputFlashMap(request).putAll(flashAttributes); } } return mav; }
Example 3
Source File: LoginController.java From jeecg with Apache License 2.0 | 6 votes |
/** * 菜单跳转 * * @return */ @RequestMapping(params = "left") public ModelAndView left(HttpServletRequest request) { TSUser user = ResourceUtil.getSessionUser(); HttpSession session = ContextHolderUtils.getSession(); ModelAndView modelAndView = new ModelAndView(); // 登陆者的权限 if (user.getId() == null) { session.removeAttribute(Globals.USER_SESSION); modelAndView.setView(new RedirectView("loginController.do?login")); }else{ modelAndView.setViewName("main/left"); request.setAttribute("menuMap", userService.getFunctionMap(user.getId())); } return modelAndView; }
Example 4
Source File: MultiModelAndViewReturnValueHandler.java From xiaoyaoji with GNU General Public License v3.0 | 6 votes |
@Override public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { if(!(returnValue instanceof MultiView)){ processor.handleReturnValue(new Result<>(true,returnValue),returnType,mavContainer,webRequest); return; } MultiView view = (MultiView) returnValue; //如果是ajax请求,则返回json if("XMLHttpRequest".equals(webRequest.getHeader("X-Requested-With"))){ processor.handleReturnValue(new Result<>(true,view.getModelMap()),returnType,mavContainer,webRequest); return; } ModelAndView temp = new ModelAndView(view.getViewName()); if(view.getView() != null) { temp.setView(view.getView()); } temp.setStatus(view.getStatus()); temp.addAllObjects(view.getModelMap()); super.handleReturnValue(temp, returnType, mavContainer, webRequest); }
Example 5
Source File: ExceptionHandler.java From onboard with Apache License 2.0 | 6 votes |
@Override protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { ModelAndView mav = super.doResolveException(request, response, handler, ex); if (ex instanceof NoPermissionException) { response.setStatus(HttpStatus.FORBIDDEN.value()); logger.info(String.valueOf(response.getStatus())); } else if (ex instanceof BadRequestException) { response.setStatus(HttpStatus.BAD_REQUEST.value()); } else if (ex instanceof NoLoginException) { response.setStatus(HttpStatus.UNAUTHORIZED.value()); } else if (ex instanceof ResourceNotFoundException || ex instanceof InvitationTokenExpiredException || ex instanceof InvitationTokenInvalidException || ex instanceof RegisterTokenInvalidException || ex instanceof ResetPasswordTokenInvalidException) { response.setStatus(HttpStatus.NOT_FOUND.value()); } else { response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); } mav.setView(new MappingJacksonJsonView()); mav.addObject("exception", ex); logger.debug("view name = {}", mav.getViewName()); return mav; }
Example 6
Source File: RestExceptionHandler.java From proxyee-down with Apache License 2.0 | 6 votes |
@Override public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) { LOGGER.error("rest error:", e); ModelAndView modelAndView = new ModelAndView(); try { ResultInfo resultInfo = new ResultInfo().setStatus(ResultStatus.ERROR.getCode()) .setMsg(ResultInfo.MSG_ERROR); Map<String, Object> attr = JSON.parseObject(JSON.toJSONString(resultInfo), Map.class); MappingJackson2JsonView view = new MappingJackson2JsonView(); view.setAttributesMap(attr); modelAndView.setView(view); } catch (Exception e1) { e1.printStackTrace(); } return modelAndView; }
Example 7
Source File: ExceptionHandler.java From yfs with Apache License 2.0 | 6 votes |
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { ModelAndView mv = new ModelAndView(); MappingJackson2JsonView view = new MappingJackson2JsonView(); Map<String, Object> attributes = new HashMap(); if (ex instanceof MaxUploadSizeExceededException) { attributes.put("code", ResultCode.C403.code); attributes.put("msg", "Maximum upload size of " + ((MaxUploadSizeExceededException) ex).getMaxUploadSize() + " bytes exceeded"); logger.warn(ex.getMessage()); } else { attributes.put("code", ResultCode.C500.code); attributes.put("msg", ResultCode.C500.desc); logger.error("Internal server error", ex); } view.setAttributesMap(attributes); mv.setView(view); return mv; }
Example 8
Source File: RequestMappingHandlerAdapter.java From lams with GNU General Public License v2.0 | 6 votes |
private ModelAndView getModelAndView(ModelAndViewContainer mavContainer, ModelFactory modelFactory, NativeWebRequest webRequest) throws Exception { modelFactory.updateModel(webRequest, mavContainer); if (mavContainer.isRequestHandled()) { return null; } ModelMap model = mavContainer.getModel(); ModelAndView mav = new ModelAndView(mavContainer.getViewName(), model, mavContainer.getStatus()); if (!mavContainer.isViewReference()) { mav.setView((View) mavContainer.getView()); } if (model instanceof RedirectAttributes) { Map<String, ?> flashAttributes = ((RedirectAttributes) model).getFlashAttributes(); HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class); RequestContextUtils.getOutputFlashMap(request).putAll(flashAttributes); } return mav; }
Example 9
Source File: ParameterizableViewController.java From spring-analysis-note with MIT License | 5 votes |
/** * Return a ModelAndView object with the specified view name. * <p>The content of the {@link RequestContextUtils#getInputFlashMap * "input" FlashMap} is also added to the model. * @see #getViewName() */ @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { String viewName = getViewName(); if (getStatusCode() != null) { if (getStatusCode().is3xxRedirection()) { request.setAttribute(View.RESPONSE_STATUS_ATTRIBUTE, getStatusCode()); } else { response.setStatus(getStatusCode().value()); if (getStatusCode().equals(HttpStatus.NO_CONTENT) && viewName == null) { return null; } } } if (isStatusOnly()) { return null; } ModelAndView modelAndView = new ModelAndView(); modelAndView.addAllObjects(RequestContextUtils.getInputFlashMap(request)); if (viewName != null) { modelAndView.setViewName(viewName); } else { modelAndView.setView(getView()); } return modelAndView; }
Example 10
Source File: LogoutAction.java From web-sso with Apache License 2.0 | 5 votes |
/** * 处理登出ki4so服务器的请求。 * 1.清除用户登录的状态信息,即用户登录了那些应用。 * 2.清除sso服务端的cookie。 * 3.统一登出用户登出过的所有应用。 * @param request 请求对象。 * @param response 响应对象。 * 如果参数servcie有合法的值,则跳转到该地址。否则返回到默认的登出成功页面。 * @throws IOException */ @RequestMapping("/logout") public ModelAndView logout(HttpServletRequest request, HttpServletResponse response,HttpSession session) throws IOException { ModelAndView modelAndView = new ModelAndView(); //获得service. String service = request.getParameter(WebConstants.SERVICE_PARAM_NAME); LOGGER.info("the service of logout is "+service); //解析用户凭据。 KnightCredential credential = credentialResolver.resolveCredential(request); //调用servie统一登出所有的应用。 this.ki4soService.logout(credential, service); //清除cookie值。 Cookie[] cookies = request.getCookies(); if(cookies!=null && cookies.length>0){ for(Cookie cookie:cookies){ if(WebConstants.KI4SO_SERVER_ENCRYPTED_CREDENTIAL_COOKIE_KEY.equals(cookie.getName())){ //设置过期时间为立即。 cookie.setMaxAge(0); response.addCookie(cookie); LOGGER.info("clear up the cookie "+WebConstants.KI4SO_SERVER_ENCRYPTED_CREDENTIAL_COOKIE_KEY); } } } if(!StringUtils.isEmpty(service)){ //跳转到service对应的URL地址 modelAndView.setView(new RedirectView(service)); session.setAttribute(Ki4soClientFilter.USER_STATE_IN_SESSION_KEY,null); } else{ //返回默认的登出成功页面。 modelAndView.setViewName("logoutSucess"); } return modelAndView; }
Example 11
Source File: ParameterizableViewController.java From spring4-understanding with Apache License 2.0 | 5 votes |
/** * Return a ModelAndView object with the specified view name. * <p>The content of the {@link RequestContextUtils#getInputFlashMap * "input" FlashMap} is also added to the model. * @see #getViewName() */ @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { String viewName = getViewName(); if (getStatusCode() != null) { if (getStatusCode().is3xxRedirection()) { request.setAttribute(View.RESPONSE_STATUS_ATTRIBUTE, getStatusCode()); viewName = (viewName != null && !viewName.startsWith("redirect:") ? "redirect:" + viewName : viewName); } else { response.setStatus(getStatusCode().value()); if (isStatusOnly() || (getStatusCode().equals(HttpStatus.NO_CONTENT) && getViewName() == null)) { return null; } } } ModelAndView modelAndView = new ModelAndView(); modelAndView.addAllObjects(RequestContextUtils.getInputFlashMap(request)); if (getViewName() != null) { modelAndView.setViewName(viewName); } else { modelAndView.setView(getView()); } return (isStatusOnly() ? null : modelAndView); }
Example 12
Source File: ParameterizableViewController.java From lams with GNU General Public License v2.0 | 5 votes |
/** * Return a ModelAndView object with the specified view name. * <p>The content of the {@link RequestContextUtils#getInputFlashMap * "input" FlashMap} is also added to the model. * @see #getViewName() */ @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { String viewName = getViewName(); if (getStatusCode() != null) { if (getStatusCode().is3xxRedirection()) { request.setAttribute(View.RESPONSE_STATUS_ATTRIBUTE, getStatusCode()); viewName = (viewName != null && !viewName.startsWith("redirect:") ? "redirect:" + viewName : viewName); } else { response.setStatus(getStatusCode().value()); if (isStatusOnly() || (getStatusCode().equals(HttpStatus.NO_CONTENT) && getViewName() == null)) { return null; } } } ModelAndView modelAndView = new ModelAndView(); modelAndView.addAllObjects(RequestContextUtils.getInputFlashMap(request)); if (getViewName() != null) { modelAndView.setViewName(viewName); } else { modelAndView.setView(getView()); } return (isStatusOnly() ? null : modelAndView); }
Example 13
Source File: HomeController.java From kaif with Apache License 2.0 | 5 votes |
@RequestMapping("/hot.rss") public Object rssFeed() { ModelAndView modelAndView = new ModelAndView().addObject("articles", articleService.listRssTopArticlesWithCache()); modelAndView.setView(new HotArticleRssContentView()); return modelAndView; }
Example 14
Source File: GlobalExceptionHandler.java From SENS with GNU General Public License v3.0 | 5 votes |
/** * 获取其它异常。包括500 * * @param e * @return * @throws Exception */ @ExceptionHandler(value = Exception.class) public ModelAndView defaultErrorHandler(HttpServletRequest request, HttpServletResponse response, Exception e, Model model) throws IOException { e.printStackTrace(); if (isAjax(request)) { ModelAndView mav = new ModelAndView(); MappingJackson2JsonView view = new MappingJackson2JsonView(); Map<String, Object> attributes = new HashMap<String, Object>(); if (e instanceof UnauthorizedException) { attributes.put("msg", "没有权限"); } else { attributes.put("msg", e.getMessage()); } attributes.put("code", "0"); view.setAttributesMap(attributes); mav.setView(view); return mav; } if (e instanceof UnauthorizedException) { //请登录 log.error("无权访问", e); return new ModelAndView("common/error/403"); } //其他异常 String message = e.getMessage(); model.addAttribute("code", 500); model.addAttribute("message", message); return new ModelAndView("common/error/500"); }
Example 15
Source File: ExceptionHandlerExceptionResolver.java From lams with GNU General Public License v2.0 | 4 votes |
/** * Find an {@code @ExceptionHandler} method and invoke it to handle the raised exception. */ @Override protected ModelAndView doResolveHandlerMethodException(HttpServletRequest request, HttpServletResponse response, HandlerMethod handlerMethod, Exception exception) { ServletInvocableHandlerMethod exceptionHandlerMethod = getExceptionHandlerMethod(handlerMethod, exception); if (exceptionHandlerMethod == null) { return null; } exceptionHandlerMethod.setHandlerMethodArgumentResolvers(this.argumentResolvers); exceptionHandlerMethod.setHandlerMethodReturnValueHandlers(this.returnValueHandlers); ServletWebRequest webRequest = new ServletWebRequest(request, response); ModelAndViewContainer mavContainer = new ModelAndViewContainer(); try { if (logger.isDebugEnabled()) { logger.debug("Invoking @ExceptionHandler method: " + exceptionHandlerMethod); } Throwable cause = exception.getCause(); if (cause != null) { // Expose cause as provided argument as well exceptionHandlerMethod.invokeAndHandle(webRequest, mavContainer, exception, cause, handlerMethod); } else { // Otherwise, just the given exception as-is exceptionHandlerMethod.invokeAndHandle(webRequest, mavContainer, exception, handlerMethod); } } catch (Throwable invocationEx) { // Any other than the original exception is unintended here, // probably an accident (e.g. failed assertion or the like). if (invocationEx != exception && logger.isWarnEnabled()) { logger.warn("Failed to invoke @ExceptionHandler method: " + exceptionHandlerMethod, invocationEx); } // Continue with default processing of the original exception... return null; } if (mavContainer.isRequestHandled()) { return new ModelAndView(); } else { ModelMap model = mavContainer.getModel(); HttpStatus status = mavContainer.getStatus(); ModelAndView mav = new ModelAndView(mavContainer.getViewName(), model, status); mav.setViewName(mavContainer.getViewName()); if (!mavContainer.isViewReference()) { mav.setView((View) mavContainer.getView()); } if (model instanceof RedirectAttributes) { Map<String, ?> flashAttributes = ((RedirectAttributes) model).getFlashAttributes(); request = webRequest.getNativeRequest(HttpServletRequest.class); RequestContextUtils.getOutputFlashMap(request).putAll(flashAttributes); } return mav; } }
Example 16
Source File: ErrorTicketService.java From codenjoy with GNU General Public License v3.0 | 4 votes |
public ModelAndView get(String url, Exception exception) { String ticket = ticket(); String message = printStackTrace ? exception.toString() : exception.toString(); log.error("[TICKET:URL] {}:{} {}", ticket, url, message); System.err.printf("[TICKET:URL] %s:%s %s%n", ticket, url, message); if (printStackTrace && !skip(message)) { exception.printStackTrace(); } Map<String, Object> info = getDetails(ticket, url, exception); tickets.put(ticket, info); ModelAndView result = new ModelAndView(); result.setStatus(HttpStatus.INTERNAL_SERVER_ERROR); copy("ticketNumber", info, result); if (!debug.isWorking()) { result.addObject("message", getMessage()); if (url.contains("/rest/")) { shouldJsonResult(result); } else { shouldErrorPage(result); } return result; } copy("message", info, result); copy("url", info, result); copy("exception", info, result); if (url.contains("/rest/")) { copy("stackTrace", info, result); result.setView(new MappingJackson2JsonView(){{ setPrettyPrint(true); }}); return result; } result.addObject("stackTrace", prepareStackTrace(exception)); shouldErrorPage(result); return result; }
Example 17
Source File: ExceptionHandlerExceptionResolver.java From java-technology-stack with MIT License | 4 votes |
/** * Find an {@code @ExceptionHandler} method and invoke it to handle the raised exception. */ @Override @Nullable protected ModelAndView doResolveHandlerMethodException(HttpServletRequest request, HttpServletResponse response, @Nullable HandlerMethod handlerMethod, Exception exception) { ServletInvocableHandlerMethod exceptionHandlerMethod = getExceptionHandlerMethod(handlerMethod, exception); if (exceptionHandlerMethod == null) { return null; } if (this.argumentResolvers != null) { exceptionHandlerMethod.setHandlerMethodArgumentResolvers(this.argumentResolvers); } if (this.returnValueHandlers != null) { exceptionHandlerMethod.setHandlerMethodReturnValueHandlers(this.returnValueHandlers); } ServletWebRequest webRequest = new ServletWebRequest(request, response); ModelAndViewContainer mavContainer = new ModelAndViewContainer(); try { if (logger.isDebugEnabled()) { logger.debug("Using @ExceptionHandler " + exceptionHandlerMethod); } Throwable cause = exception.getCause(); if (cause != null) { // Expose cause as provided argument as well exceptionHandlerMethod.invokeAndHandle(webRequest, mavContainer, exception, cause, handlerMethod); } else { // Otherwise, just the given exception as-is exceptionHandlerMethod.invokeAndHandle(webRequest, mavContainer, exception, handlerMethod); } } catch (Throwable invocationEx) { // Any other than the original exception is unintended here, // probably an accident (e.g. failed assertion or the like). if (invocationEx != exception && logger.isWarnEnabled()) { logger.warn("Failure in @ExceptionHandler " + exceptionHandlerMethod, invocationEx); } // Continue with default processing of the original exception... return null; } if (mavContainer.isRequestHandled()) { return new ModelAndView(); } else { ModelMap model = mavContainer.getModel(); HttpStatus status = mavContainer.getStatus(); ModelAndView mav = new ModelAndView(mavContainer.getViewName(), model, status); mav.setViewName(mavContainer.getViewName()); if (!mavContainer.isViewReference()) { mav.setView((View) mavContainer.getView()); } if (model instanceof RedirectAttributes) { Map<String, ?> flashAttributes = ((RedirectAttributes) model).getFlashAttributes(); RequestContextUtils.getOutputFlashMap(request).putAll(flashAttributes); } return mav; } }
Example 18
Source File: ExceptionHandlerExceptionResolver.java From spring4-understanding with Apache License 2.0 | 4 votes |
/** * Find an {@code @ExceptionHandler} method and invoke it to handle the raised exception. */ @Override protected ModelAndView doResolveHandlerMethodException(HttpServletRequest request, HttpServletResponse response, HandlerMethod handlerMethod, Exception exception) { ServletInvocableHandlerMethod exceptionHandlerMethod = getExceptionHandlerMethod(handlerMethod, exception); if (exceptionHandlerMethod == null) { return null; } exceptionHandlerMethod.setHandlerMethodArgumentResolvers(this.argumentResolvers); exceptionHandlerMethod.setHandlerMethodReturnValueHandlers(this.returnValueHandlers); ServletWebRequest webRequest = new ServletWebRequest(request, response); ModelAndViewContainer mavContainer = new ModelAndViewContainer(); try { if (logger.isDebugEnabled()) { logger.debug("Invoking @ExceptionHandler method: " + exceptionHandlerMethod); } exceptionHandlerMethod.invokeAndHandle(webRequest, mavContainer, exception, handlerMethod); } catch (Exception invocationEx) { if (logger.isErrorEnabled()) { logger.error("Failed to invoke @ExceptionHandler method: " + exceptionHandlerMethod, invocationEx); } return null; } if (mavContainer.isRequestHandled()) { return new ModelAndView(); } else { ModelAndView mav = new ModelAndView().addAllObjects(mavContainer.getModel()); mav.setViewName(mavContainer.getViewName()); if (!mavContainer.isViewReference()) { mav.setView((View) mavContainer.getView()); } return mav; } }
Example 19
Source File: ExceptionHandlerExceptionResolver.java From spring-analysis-note with MIT License | 4 votes |
/** * Find an {@code @ExceptionHandler} method and invoke it to handle the raised exception. */ @Override @Nullable protected ModelAndView doResolveHandlerMethodException(HttpServletRequest request, HttpServletResponse response, @Nullable HandlerMethod handlerMethod, Exception exception) { ServletInvocableHandlerMethod exceptionHandlerMethod = getExceptionHandlerMethod(handlerMethod, exception); if (exceptionHandlerMethod == null) { return null; } if (this.argumentResolvers != null) { exceptionHandlerMethod.setHandlerMethodArgumentResolvers(this.argumentResolvers); } if (this.returnValueHandlers != null) { exceptionHandlerMethod.setHandlerMethodReturnValueHandlers(this.returnValueHandlers); } ServletWebRequest webRequest = new ServletWebRequest(request, response); ModelAndViewContainer mavContainer = new ModelAndViewContainer(); try { if (logger.isDebugEnabled()) { logger.debug("Using @ExceptionHandler " + exceptionHandlerMethod); } Throwable cause = exception.getCause(); if (cause != null) { // Expose cause as provided argument as well exceptionHandlerMethod.invokeAndHandle(webRequest, mavContainer, exception, cause, handlerMethod); } else { // Otherwise, just the given exception as-is exceptionHandlerMethod.invokeAndHandle(webRequest, mavContainer, exception, handlerMethod); } } catch (Throwable invocationEx) { // Any other than the original exception is unintended here, // probably an accident (e.g. failed assertion or the like). if (invocationEx != exception && logger.isWarnEnabled()) { logger.warn("Failure in @ExceptionHandler " + exceptionHandlerMethod, invocationEx); } // Continue with default processing of the original exception... return null; } if (mavContainer.isRequestHandled()) { return new ModelAndView(); } else { ModelMap model = mavContainer.getModel(); HttpStatus status = mavContainer.getStatus(); ModelAndView mav = new ModelAndView(mavContainer.getViewName(), model, status); mav.setViewName(mavContainer.getViewName()); if (!mavContainer.isViewReference()) { mav.setView((View) mavContainer.getView()); } if (model instanceof RedirectAttributes) { Map<String, ?> flashAttributes = ((RedirectAttributes) model).getFlashAttributes(); RequestContextUtils.getOutputFlashMap(request).putAll(flashAttributes); } return mav; } }
Example 20
Source File: ErrorTicketService.java From codenjoy with GNU General Public License v3.0 | 4 votes |
public ModelAndView get(String url, Exception exception) { String ticket = ticket(); String message = printStackTrace ? exception.toString() : exception.toString(); log.error("[TICKET:URL] {}:{} {}", ticket, url, message); System.err.printf("[TICKET:URL] %s:%s %s%n", ticket, url, message); if (printStackTrace && !skip(message)) { exception.printStackTrace(); } Map<String, Object> info = getDetails(ticket, url, exception); tickets.put(ticket, info); ModelAndView result = new ModelAndView(); result.setStatus(HttpStatus.INTERNAL_SERVER_ERROR); copy("ticketNumber", info, result); if (!debug.isWorking()) { result.addObject("message", ERROR_MESSAGE); if (url.contains("/rest/")) { shouldJsonResult(result); } else { shouldErrorPage(result); } return result; } copy("message", info, result); copy("url", info, result); copy("exception", info, result); if (url.contains("/rest/")) { copy("stackTrace", info, result); result.setView(new MappingJackson2JsonView(){{ setPrettyPrint(true); }}); return result; } result.addObject("stackTrace", prepareStackTrace(exception)); shouldErrorPage(result); return result; }