1 12 package org.displaytag.filter; 13 14 import java.util.HashMap ; 15 import java.util.Map ; 16 17 import javax.servlet.http.HttpServletRequest ; 18 import javax.servlet.http.HttpServletResponse ; 19 20 import org.apache.commons.logging.Log; 21 import org.apache.commons.logging.LogFactory; 22 import org.displaytag.Messages; 23 import org.displaytag.tags.TableTag; 24 import org.displaytag.tags.TableTagParameters; 25 import org.springframework.web.servlet.HandlerAdapter; 26 import org.springframework.web.servlet.HandlerInterceptor; 27 import org.springframework.web.servlet.ModelAndView; 28 import org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter; 29 30 31 69 public class DisplayTagSpringInterceptor implements HandlerInterceptor 70 { 71 72 75 static Log log = LogFactory.getLog(DisplayTagSpringInterceptor.class); 76 77 80 private boolean buffer = true; 81 82 86 public void setBuffer(boolean bufferingEnabled) 87 { 88 this.buffer = bufferingEnabled; 89 } 90 91 94 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception 95 { 96 97 if (request.getParameter(TableTagParameters.PARAMETER_EXPORTING) == null) 98 { 99 if (log.isDebugEnabled()) 100 { 101 log.debug(Messages.getString("ResponseOverrideFilter.parameternotfound")); } 103 return true; 105 } 106 107 BufferedResponseWrapper wrapper = new BufferedResponseWrapper13Impl(response); 108 109 Map contentBean = new HashMap (4); 110 if (buffer) 111 { 112 contentBean.put(TableTagParameters.BEAN_BUFFER, Boolean.TRUE); 113 } 114 request.setAttribute(TableTag.FILTER_CONTENT_OVERRIDE_BODY, contentBean); 115 116 if (log.isDebugEnabled()) 117 { 118 log.debug("handler is " + handler); 119 } 120 121 HandlerAdapter handlerAdaptor = new SimpleControllerHandlerAdapter(); 122 handlerAdaptor.handle(request, wrapper, handler); 123 124 ExportDelegate.writeExport(response, request, wrapper); 125 126 return false; 127 } 128 129 132 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, 133 ModelAndView modelAndView) throws Exception 134 { 135 } 137 138 141 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, 142 Exception exception) throws Exception 143 { 144 } 146 147 } 148 | Popular Tags |