標籤:log 定義 攔截器 exce after tree pos tab ice
package com.thinkgem.jeesite.modules.sys.interceptor;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import com.thinkgem.jeesite.common.service.BaseService;import com.thinkgem.jeesite.common.utils.StringUtils;import com.thinkgem.jeesite.common.utils.UserAgentUtils;/** * 手機端視圖攔截器 * @author * @version 2014-9-1 */public class MobileInterceptor extends BaseService implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {return true;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {if (modelAndView != null){// 如果是手機或平板訪問的話,則跳轉到手機視圖頁面。if(UserAgentUtils.isMobileOrTablet(request) && !StringUtils.startsWithIgnoreCase(modelAndView.getViewName(), "redirect:")){modelAndView.setViewName("mobile/" + modelAndView.getViewName());}}}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {}}
設定檔spring-mvc.xml:
<!-- 攔截器配置,攔截順序:先執行後定義的,排在第一位的最後執行。--><mvc:interceptors><mvc:interceptor><mvc:mapping path="${adminPath}/**" /><mvc:exclude-mapping path="${adminPath}/"/><mvc:exclude-mapping path="${adminPath}/login"/><mvc:exclude-mapping path="${adminPath}/sys/menu/tree"/><mvc:exclude-mapping path="${adminPath}/sys/menu/treeData"/><mvc:exclude-mapping path="${adminPath}/oa/oaNotify/self/count"/><bean class="com.thinkgem.jeesite.modules.sys.interceptor.LogInterceptor" /></mvc:interceptor><!-- 手機視圖攔截器 --><mvc:interceptor><mvc:mapping path="/**" /><bean class="com.thinkgem.jeesite.modules.sys.interceptor.MobileInterceptor" /></mvc:interceptor></mvc:interceptors>
攔截器的使用,配置手機瀏覽器訪問的h5頁面