2016-09-23 4 views
0
@Controller 
@RequestMapping(value = {"user"}) 
public class UserController { 

へのすべてのリクエストに応じていくつかのコードを実行...クラスレベル要求マッピング@RequestMappingは、そのクラス

@RequestMapping(value = {"dashboard"}) 
public String index(HttpServletRequest req, ModelMap map) { 
     this.objSession = req.getSession(false); 
     try { 
      System.out.println(this.objSession.getAttribute("userid")); 

私は春4.2を使用しています。 このクラスがあり、属性userid = 1を持つセッションオブジェクトをチェックしたいとします。 この "/ user"リクエストのすべてのメソッドをチェックしています。 私の質問は、私がこのコードを避けることができれば、どのメソッドのコードを実行する前でもやっていることです。

チェックのためにコードの再現性を高める方法はありますか?

事前にお時間をいただきありがとうございます。

+0

(http://stackoverflow.com/a/36834942/4117061)[このように]フィルタを使用し、すべての要求のためのチェックを行うに書き込まれますあなたに

。 。 –

+0

ありがとう@PrasannaKumar – subhajit

+0

は働いていますか?もしそうなら、私はこれを重複としてマークします。あなたはそこでupvoteすることができます。答えは受け入れる必要はありません。 –

答えて

0

interceptorsを使用するには、リクエストパスを照合します。 path-mathcer

<mvc:interceptors path-matcher="/someRequest/*"> 
    <bean class="className" autowire="constructor"/> 
</mvc:interceptors> 

それはあなたが必要と何でも実行されるように、あなたは、URLのいずれかのタイプを指定することができます。

コントローラー:

@Controller 
@RequestMapping(value = {"someRequest/user"}) 
public class UserController { 

はインターセプタ:someRequest/userを処理する前に、あなたは>afterCompletion ,preHandle,postHandle use-ことができ、3つの方法で、以下のようなインターセプターを使用することができます。ケースコードがpreHandle方法

public class SomeRequestIntercept implements HandlerInterceptor { 

    @Override 
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object object, 
      Exception exception) throws Exception { 

    } 

    @Override 
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object arg2, ModelAndView arg3) 
      throws Exception { 

    } 

    @Override 
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception { 
     System.out.println("before processing someRequest/**"); 
     return true; 
    } 

} 
+0

要求がクラスレベルのマッピングになったときにメソッドを実行する方法を教えてください。 要求が次のようになったとします: /user/something、 /user/anotherthing、 "/ something"と "/ anotherthing"でマッピングされたメソッドに行く前に両方のメソッドを実行しますか? あなたのお返事ありがとうございます。 – subhajit

+0

@subhajitはこれが助けられるのですか? –

関連する問題