/** 渲染视图 */ @Override public Object render(ModelAndView modelAndView) { HttpServletRequest request = BladeWebContext.servletRequest(); HttpServletResponse response = BladeWebContext.servletResponse(); try { if (null == modelAndView) { throw new BladeException("modelAndView is null"); } String view = Blade.webRoot() + disposeView(modelAndView.getView()); JetTemplate template = jetEngine.getTemplate(view); Map<String, Object> context = modelAndView.getModel(); Enumeration<String> attrs = request.getAttributeNames(); if (null != attrs && attrs.hasMoreElements()) { while (attrs.hasMoreElements()) { String attr = attrs.nextElement(); context.put(attr, request.getAttribute(attr)); } } template.render(context, response.getOutputStream()); } catch (ResourceNotFoundException e) { render404(response, modelAndView.getView()); } catch (IOException e) { e.printStackTrace(); } return null; }
@Override public ModelAndView execute(HttpServletRequest request, HttpServletResponse response) { ModelAndView mv = new ModelAndView(); BoardService service = BoardService.getInstance(); ArrayList accList = new ArrayList(); String acc_id = request.getParameter("acc_id"); boolean isRemove = false; try { isRemove = service.removeAcc(Integer.parseInt(acc_id)); accList = service.getLoninInfo(); HttpSession session = request.getSession(); if (isRemove) { // 삭제 성공 --> accountDel.jsp 이동 mv.setPath("DispatcherServlet?command=home"); } else { session.setAttribute("isRemove", false); mv.setPath("accountDel.jsp"); } session.setAttribute("loginInfo", accList); } catch (SQLException e) { e.printStackTrace(); } return mv; }
public ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView("systeminfo"); mav.addObject("sysprops", new TreeMap<String, String>((Map) System.getProperties())); mav.addObject("sysenv", new TreeMap<String, String>((Map) System.getenv())); mav.addObject("systime", new Date()); //Calculate app uptime duration Date appStartTime = (Date) getServletContext().getAttribute("appStartTime"); long durationMillis = new Date().getTime() - appStartTime.getTime(); String duration = DurationFormatUtils.formatDurationWords(durationMillis, true, false); mav.addObject("appUptime", duration); //Calculate system resources. Runtime runtime = Runtime.getRuntime(); long totalMem = runtime.totalMemory() / MB; long freeMem = runtime.freeMemory() / MB; long avaCPU = runtime.availableProcessors(); mav.addObject("sysres", "CPU: " + avaCPU + ", MemoryUsed: " + (totalMem - freeMem) + "M/" + totalMem + "M"); if(applicationProperties== null){ applicationProperties = new Properties(); } mav.addObject("applicationProps", applicationProperties); return mav; }
protected ModelAndView handleRequestInternal( HttpServletRequest request, HttpServletResponse response) throws Exception { Map<String, Object> map = new HashMap<String, Object>(); // String id = request.getParameter("id"); // MediaFile mediaFile = mediaFileService.getMediaFile(path); int listOffset = DEFAULT_LIST_OFFSET; int listSize = DEFAULT_LIST_SIZE; String listType = DEFAULT_LIST_TYPE; User user = securityService.getCurrentUser(request); String username = user.getUsername(); UserSettings userSettings = settingsService.getUserSettings(username); int userGroupId = securityService.getCurrentUserGroupId(request); if (request.getParameter("listOffset") != null) { listOffset = Math.max( 0, Math.min(Integer.parseInt(request.getParameter("listOffset")), MAX_LIST_OFFSET)); } if (request.getParameter("listSize") != null) { listSize = Math.max(0, Math.min(Integer.parseInt(request.getParameter("listSize")), MAX_LIST_SIZE)); } if (request.getParameter("listType") != null) { listType = String.valueOf(request.getParameter("listType")); } List<MediaFile> songs; if ("topplayed".equals(listType)) { songs = mediaFileDao.getTopPlayedCountForUser(listOffset, listSize, username); } else if ("otheruser".equals(listType)) { songs = mediaFileDao.getLastPlayedCountForAllUser(listOffset, listSize, userGroupId); } else if ("overall".equals(listType)) { songs = mediaFileDao.getTopPlayedCountForAllUser(listOffset, listSize, userGroupId); } else if ("lastplayed".equals(listType)) { songs = mediaFileDao.getLastPlayedCountForUser(listOffset, listSize, username); } else { songs = mediaFileDao.getLastPlayedCountForAllUser(0, 1, userGroupId); } mediaFileService.populateStarredDate(songs, username); map.put("user", user); map.put("songs", songs); map.put("partyModeEnabled", userSettings.isPartyModeEnabled()); map.put("player", playerService.getPlayer(request, response)); map.put("listOffset", listOffset); map.put("listSize", listSize); map.put("listType", listType); // map.put("starred", mediaFileService.getMediaFileStarredDate(dir.getId(), username) != null); ModelAndView result = super.handleRequestInternal(request, response); result.addObject("model", map); return result; }
/* (non-Javadoc) * @see org.springframework.web.servlet.DispatcherServlet#doDispatch(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ protected void doDispatch(final HttpServletRequest request, HttpServletResponse response) throws Exception { HttpServletRequest processedRequest = request; HandlerExecutionChain mappedHandler = null; int interceptorIndex = -1; final LocaleResolver localeResolver = (LocaleResolver) request.getAttribute(LOCALE_RESOLVER_ATTRIBUTE); // Expose current LocaleResolver and request as LocaleContext. LocaleContext previousLocaleContext = LocaleContextHolder.getLocaleContext(); LocaleContextHolder.setLocaleContext( new LocaleContext() { public Locale getLocale() { return localeResolver.resolveLocale(request); } }); // If the request is an include we need to try to use the original wrapped sitemesh // response, otherwise layouts won't work properly if (WebUtils.isIncludeRequest(request)) { response = useWrappedOrOriginalResponse(response); } GrailsWebRequest requestAttributes = null; GrailsWebRequest previousRequestAttributes = null; Exception handlerException = null; try { ModelAndView mv = null; try { Object exceptionAttribute = request.getAttribute(EXCEPTION_ATTRIBUTE); // only process multipart requests if an exception hasn't occured if (exceptionAttribute == null) processedRequest = checkMultipart(request); // Expose current RequestAttributes to current thread. previousRequestAttributes = (GrailsWebRequest) RequestContextHolder.currentRequestAttributes(); requestAttributes = new GrailsWebRequest(processedRequest, response, getServletContext()); copyParamsFromPreviousRequest(previousRequestAttributes, requestAttributes); // Update the current web request. WebUtils.storeGrailsWebRequest(requestAttributes); if (logger.isDebugEnabled()) { logger.debug("Bound request context to thread: " + request); logger.debug("Using response object: " + response.getClass()); } // Determine handler for the current request. mappedHandler = getHandler(processedRequest, false); if (mappedHandler == null || mappedHandler.getHandler() == null) { noHandlerFound(processedRequest, response); return; } // Apply preHandle methods of registered interceptors. if (mappedHandler.getInterceptors() != null) { for (int i = 0; i < mappedHandler.getInterceptors().length; i++) { HandlerInterceptor interceptor = mappedHandler.getInterceptors()[i]; if (!interceptor.preHandle(processedRequest, response, mappedHandler.getHandler())) { triggerAfterCompletion( mappedHandler, interceptorIndex, processedRequest, response, null); return; } interceptorIndex = i; } } // Actually invoke the handler. HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler()); mv = ha.handle(processedRequest, response, mappedHandler.getHandler()); // Apply postHandle methods of registered interceptors. if (mappedHandler.getInterceptors() != null) { for (int i = mappedHandler.getInterceptors().length - 1; i >= 0; i--) { HandlerInterceptor interceptor = mappedHandler.getInterceptors()[i]; interceptor.postHandle(processedRequest, response, mappedHandler.getHandler(), mv); } } } catch (ModelAndViewDefiningException ex) { GrailsUtil.deepSanitize(ex); handlerException = ex; if (logger.isDebugEnabled()) logger.debug("ModelAndViewDefiningException encountered", ex); mv = ex.getModelAndView(); } catch (Exception ex) { GrailsUtil.deepSanitize(ex); handlerException = ex; Object handler = (mappedHandler != null ? mappedHandler.getHandler() : null); mv = processHandlerException(request, response, handler, ex); } // Did the handler return a view to render? if (mv != null && !mv.wasCleared()) { // If an exception occurs in here, like a bad closing tag, // we have nothing to render. try { render(mv, processedRequest, response); } catch (Exception e) { mv = super.processHandlerException(processedRequest, response, mappedHandler, e); handlerException = e; render(mv, processedRequest, response); } } else { if (logger.isDebugEnabled()) { logger.debug( "Null ModelAndView returned to DispatcherServlet with name '" + getServletName() + "': assuming HandlerAdapter completed request handling"); } } // Trigger after-completion for successful outcome. triggerAfterCompletion( mappedHandler, interceptorIndex, processedRequest, response, handlerException); } catch (Exception ex) { // Trigger after-completion for thrown exception. triggerAfterCompletion(mappedHandler, interceptorIndex, processedRequest, response, ex); throw ex; } catch (Error err) { ServletException ex = new NestedServletException("Handler processing failed", err); // Trigger after-completion for thrown exception. triggerAfterCompletion(mappedHandler, interceptorIndex, processedRequest, response, ex); throw ex; } finally { // Clean up any resources used by a multipart request. if (processedRequest instanceof MultipartHttpServletRequest && processedRequest != request) { if (multipartResolver != null) this.multipartResolver.cleanupMultipart((MultipartHttpServletRequest) processedRequest); } request.removeAttribute(MultipartHttpServletRequest.class.getName()); // Reset thread-bound holders if (requestAttributes != null) { requestAttributes.requestCompleted(); WebUtils.storeGrailsWebRequest(previousRequestAttributes); } LocaleContextHolder.setLocaleContext(previousLocaleContext); if (logger.isDebugEnabled()) { logger.debug("Cleared thread-bound request context: " + request); } } }
@Get("/helloJoe") @Produces("text/html") public ModelAndView helloJoe() { return ModelAndView.of("1variable", "name", "Joe"); }
/** * Processes the actual dispatching to the handler for resource requests. * <p>The handler will be obtained by applying the portlet's HandlerMappings in order. * The HandlerAdapter will be obtained by querying the portlet's installed * HandlerAdapters to find the first that supports the handler class. * @param request current portlet render request * @param response current portlet render response * @throws Exception in case of any kind of processing failure */ @Override protected void doResourceService(ResourceRequest request, ResourceResponse response) throws Exception { if (logger.isDebugEnabled()) { logger.debug("DispatcherPortlet with name '" + getPortletName() + "' received resource request"); } HandlerExecutionChain mappedHandler = null; int interceptorIndex = -1; try { ModelAndView mv; try { // Determine handler for the current request. mappedHandler = getHandler(request); if (mappedHandler == null || mappedHandler.getHandler() == null) { noHandlerFound(request, response); return; } // Apply preHandle methods of registered interceptors. HandlerInterceptor[] interceptors = mappedHandler.getInterceptors(); if (interceptors != null) { for (int i = 0; i < interceptors.length; i++) { HandlerInterceptor interceptor = interceptors[i]; if (!interceptor.preHandleResource(request, response, mappedHandler.getHandler())) { triggerAfterResourceCompletion(mappedHandler, interceptorIndex, request, response, null); return; } interceptorIndex = i; } } // Actually invoke the handler. HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler()); mv = ha.handleResource(request, response, mappedHandler.getHandler()); // Apply postHandle methods of registered interceptors. if (interceptors != null) { for (int i = interceptors.length - 1; i >= 0; i--) { HandlerInterceptor interceptor = interceptors[i]; interceptor.postHandleResource(request, response, mappedHandler.getHandler(), mv); } } } catch (ModelAndViewDefiningException ex) { logger.debug("ModelAndViewDefiningException encountered", ex); mv = ex.getModelAndView(); } catch (Exception ex) { Object handler = (mappedHandler != null ? mappedHandler.getHandler() : null); mv = processHandlerException(request, response, handler, ex); } // Did the handler return a view to render? if (mv != null && !mv.isEmpty()) { render(mv, request, response); } else { if (logger.isDebugEnabled()) { logger.debug("Null ModelAndView returned to DispatcherPortlet with name '" + getPortletName() + "': assuming HandlerAdapter completed request handling"); } } // Trigger after-completion for successful outcome. triggerAfterResourceCompletion(mappedHandler, interceptorIndex, request, response, null); } catch (Exception ex) { // Trigger after-completion for thrown exception. triggerAfterResourceCompletion(mappedHandler, interceptorIndex, request, response, ex); throw ex; } catch (Error err) { PortletException ex = new PortletException("Error occured during request processing: " + err.getMessage(), err); // Trigger after-completion for thrown exception. triggerAfterResourceCompletion(mappedHandler, interceptorIndex, request, response, ex); throw ex; } }