1 3 package jodd.madvoc.interceptor; 4 5 import jodd.madvoc.ActionRequest; 6 import jodd.madvoc.WebApplication; 7 import jodd.madvoc.injector.ActionFieldInjector; 8 import jodd.madvoc.injector.ActionInjector; 9 import jodd.servlet.upload.MultipartRequestWrapper; 10 import jodd.servlet.ServletUtil; 11 12 import javax.servlet.http.HttpServletRequest ; 13 import javax.servlet.http.HttpServletResponse ; 14 import java.util.Map ; 15 import java.util.HashMap ; 16 17 20 public class ServletConfigInterceptor implements ActionInterceptor { 21 22 private Map <Class , ActionInjector> injectors; 23 24 public ServletConfigInterceptor() { 25 injectors = new HashMap <Class , ActionInjector>(); 26 } 27 28 public String intercept(ActionRequest actionRequest) throws Exception { 29 WebApplication webapp = actionRequest.getWebApplication(); 30 HttpServletRequest servletRequest = actionRequest.getHttpServletRequest(); 31 HttpServletResponse serlvetResponse = actionRequest.getHttpServletResponse(); 32 33 servletRequest.setCharacterEncoding(webapp.getEncoding()); 35 serlvetResponse.setCharacterEncoding(webapp.getEncoding()); 36 37 if (ServletUtil.isMultipartRequest(servletRequest)) { 39 actionRequest.setHttpServletRequest(new MultipartRequestWrapper(servletRequest, webapp.getFileUploadFactory(), webapp.getEncoding())); 40 } 41 42 Class <? extends Object > actionClass = actionRequest.getAction().getClass(); 44 ActionInjector injector = injectors.get(actionClass); 45 if (injector == null) { 46 injector = new ActionFieldInjector(); 47 injectors.put(actionClass, injector); 48 } 49 50 injector.inject(actionRequest); 51 String result = actionRequest.invoke(); 52 injector.outject(actionRequest); 53 return result; 54 } 55 } 56 | Popular Tags |