亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

如何使用SpringMVC攔截器的preHandle方法獲取當前執行的目標方法

如訪問http://localhost:8080/courses/testEncoding在攔截器中可以獲取到testEncoding方法

ps:可以使用HandlerMethod獲取到該方法,但是原本正常運行的程序會報錯:

java.lang.ClassCastException: org.springframework.web.servlet.resource.ResourceHttpRequestHandler cannot be cast to org.springframework.web.method.HandlerMethod

頁面可以顯示,但是并無CSS樣式。。刪除HandlerMethod語句就可以正常運行


@Override

public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {

???? System.out.println("執行preHandle");

???? HandlerMethod hm = (HandlerMethod) arg2;

???? System.out.println("當前執行的對象是"+hm.getMethod());

???? return true;

}


正在回答

2 回答

if (o instanceof HandlerMethod)?

強轉之前加個判斷

1 回復 有任何疑惑可以回復我~

自問自答。。

決定不鉆牛角尖了,直接使用request.getRequestURI()獲取到了。。。

附上代碼:

@Override

public boolean preHandle(HttpServletRequest request, HttpServletResponse arg1, Object arg2) throws Exception {

???? System.out.println("執行preHandle");

???? System.out.println("getRequestURI"+request.getRequestURI());

???? return true;

}

以及SpringMVC配置文件中的攔截器配置

<!-- 攔截來自所有的請求 -->

<mvc:interceptors>

? ? <mvc:interceptor>

????? ? <mvc:mapping path="/**"/>

????? ? <mvc:exclude-mapping path="/**/fonts/*"/>

???? ????<mvc:exclude-mapping path="/**/*.css"/>

???? ????<mvc:exclude-mapping path="/**/*.js"/>

???? ????<mvc:exclude-mapping path="/**/*.png"/>

???? ????<mvc:exclude-mapping path="/**/*.gif"/>

???? ????<mvc:exclude-mapping path="/**/*.jpg"/>

???? ????<mvc:exclude-mapping path="/**/*.jpeg"/>

????? ? <bean class="com.springmvc.demo.interceptor.TestInterceptor" />

????</mvc:interceptor>

</mvc:interceptors>

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Spring MVC攔截器
  • 參與學習       73576    人
  • 解答問題       59    個

Spring MVC攔截器的工作原理及配置,介紹攔截器與過濾器的區別

進入課程

如何使用SpringMVC攔截器的preHandle方法獲取當前執行的目標方法

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號