2017-07-14 12 views
0

Spring MVC RequestMappingアノテーションで質問があります。君の力が必要。Spring @RequestMapping

私は1つのIPSLコントローラを作成しました。このコントローラには、url.iが2つのメソッドを作成したので、すべてのリクエストを処理するIPSLコントローラが必要です。

1)handleLogoutRequest:このメソッドは、urlの下で呼び出す必要があります。

2)handleRequest: - このメソッドは、すべてのリクエストurl以外のログアウトに対して呼び出す必要があります。 http://localhost:9086/webapp/remove

http://localhost:9086/webapp/login またはhttp://localhost:9086/webapp/add または はここに私のサンプルコードです。期待どおりに機能していません。

@Controller 
public class IPSLController { 

    @RequestMapping(value={"/logout/*"},method = RequestMethod.POST) 
    protected void handleLogoutRequest(HttpServletRequest request, 
      HttpServletResponse response) throws Exception { 
     System.out 
       .println("........................IPSLController logout request......................................."); 

    } 


    @RequestMapping(method = RequestMethod.POST,value={"/*"}) 
    protected void handleRequest(HttpServletRequest request, 
      HttpServletResponse response) throws Exception { 
     System.out 
       .println("........................IPSLController all request Post......................................."); 

    } 
    } 
+1

のようにそれらを宣言する必要があり、あなたの質問がある場合は? –

+0

「期待通りに動かない」とはどういう意味ですか? –

+0

私は正しいマッピング値を探しています。上記のコードは期待どおりに動作していません。ログアウト要求はhandleRequestメソッドにも来ています。 – Ankur

答えて

0

これはうまくいくはずです。 /*/logout/*のマッピングがあります。したがって、/logoutに投稿すると、/*のメソッドが呼び出されます。私はあなたが/logout/somethingに投稿すると、あなたのログアウトハンドラを呼び出すと思う。

2番目の方法でワイルドカードマッピングを使用することはできません。少なくとも/something/*を使用して、スプリングがマッピングの正しい決定を下せるようにします。

+0

@Nester:これはJAXRSではありません。 –

+0

@RossiRobinsion申し訳ありません、私の悪い) –

0

使用するコントローラごとに一般的なプレフィックスを使用する必要があります。また、このような呼び出しでは、 "/"は必要ありません。

@Controller 
@RequestMapping("ispl") 
public class IPSLController { 

@RequestMapping(value={"logout"},method = RequestMethod.POST) 
protected void handleLogoutRequest(HttpServletRequest request, 
     HttpServletResponse response) throws Exception { 
    System.out 
      .println("........................IPSLController logout request......................................."); 

} 


@RequestMapping(method = RequestMethod.POST,value={"hello"}) 
protected void handleRequest(HttpServletRequest request, 
     HttpServletResponse response) throws Exception { 
    System.out 
      .println("........................IPSLController all request Post......................................."); 

} 
} 

あなたが今restServiceまたは類似のもののServletRequest上またはそれらを呼びたいあなたはこの

@GET 
@Path("ispl/logout") 
public void Method (HttpServletResponse ...) 
関連する問題