1 16 17 package org.springframework.web.servlet.theme; 18 19 import javax.servlet.ServletException ; 20 import javax.servlet.http.HttpServletRequest ; 21 import javax.servlet.http.HttpServletResponse ; 22 23 import org.springframework.web.servlet.ThemeResolver; 24 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; 25 import org.springframework.web.servlet.support.RequestContextUtils; 26 27 35 public class ThemeChangeInterceptor extends HandlerInterceptorAdapter { 36 37 40 public static final String DEFAULT_PARAM_NAME = "theme"; 41 42 private String paramName = DEFAULT_PARAM_NAME; 43 44 45 49 public void setParamName(String paramName) { 50 this.paramName = paramName; 51 } 52 53 54 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) 55 throws ServletException { 56 57 ThemeResolver themeResolver = RequestContextUtils.getThemeResolver(request); 58 if (themeResolver == null) { 59 throw new IllegalStateException ("No ThemeResolver found: not in a DispatcherServlet request?"); 60 } 61 String newTheme = request.getParameter(this.paramName); 62 if (newTheme != null) { 63 themeResolver.setThemeName(request, response, newTheme); 64 } 65 return true; 67 } 68 69 } 70 | Popular Tags |