SpringでRequestMappingを使用してURLとのマッピングを行っているのですが
階層を深くした場合に@OverrideしたpreHandleメソッドが実行されず困っています。
java
1// preHandleメソッドが実行される 2@RequestMapping(value = "/test", method = RequestMethod.GET) 3public ModelAndView bot(HttpServletRequest req, ModelAndView mav) { 4~省略~ 5} 6 7// preHandleメソッドが実行されない 8@RequestMapping(value = "/test/{ownerId}", method = RequestMethod.GET) 9public ModelAndView bot(@PathVariable String ownerId, HttpServletRequest req, ModelAndView mav) { 10~省略~ 11}
servlet-context.xmlには以下の通りに定義しています。
xml
1<interceptors> 2 <interceptor> 3 <mapping path="/*"/> 4 <beans:bean class="jp.sample.tool.interceptor.RequestInterceptor" /> 5 </interceptor> 6</interceptors>
<mapping path="/*"/>を<mapping path="/**"/>とすると、
value = "/test/{ownerId}"としてもpreHandleが実行されるのですが
そうするとcssやjsなどのStaticなファイルまで1つずつpreHandleが実行されるようになってしまいます。
@RequestMapping(value = "/aaa/bbb")としてもpreHandleが実行され、
かつStaticなファイルはpreHandleから除外する方法が知りたいです。
springframeworkのバージョンは3.1.1.RELEASEとなっています。
3.2以上だと<exclude-mapping path="/resources/**"/>タグで
除外するパスを指定できるようですが、3.1の場合でマッピングしたメソッドのみに
preHandleを実行するよう設定する方法はないでしょうか?
〜追記〜
メソッドの@RequestMappingの階層を増やすのでなく、Controllerに@RequestMappingを追加して試してみましたが結果は同じでpreHandleを通りませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。