1

私はいくつかの既存@RestControllerの を持っています。これらのコントローラーにアクセスするためのパスは次のとおりです。

localhost/first/test
localhost/second/test

コード:

@RestController
@RequestMapping("/first")
public class MyRestController1 {
    @ResponseStatus(HttpStatus.OK)
    @RequestMapping(value = "/test", method = RequestMethod.GET)
    public void test(@Valid RestParameters p) {
        //...
    }
}

@RestController
@RequestMapping("/second")
public class MyRestController2 {

}

質問: 別の URL をキャッチして、@Valid残りのパラメーターの自動検証を含め、これらのコントローラーに委任することは可能ですか?

例: localhost?param=first. これを に委任することは可能でしょうlocalhost/first/testか?

また、完全なクエリ文字列をコピーして、適切な restcontroller に送信したいと考えています。/firstまたはにアクセスする場合、クエリ文字列は異なり、/second異なるパラメータを持つ場合があります。

4

1 に答える 1

0

ステップ 1) をキャプチャするクラスを作成します@Path("/")。これを「Class1」と呼びましょう

@Path("")ステップ 2) Class1 内にメソッドを作成しますが、このメソッドの を変更しないでください。が適切にキャプチャされていることを確認します@QueryString("param") String firstOrLast。これを「Method1」と呼びましょう

ステップ 3) にアクセスするlocalhost?param=firstと、Class1.Method1()が呼び出されます。したがって、このメソッド内でいくつかのロジックを構築できます (たとえばif (firstOrLast.equals("first")) { // call method_x }、method_x は、呼び出した関連する委任されたメソッドです。

于 2015-09-28T13:45:47.453 に答える