14

次のようなスプリング コントローラー/POJO があります。

@RequestMapping("/foo");
public class MyController {
    @RequestMapping("/bar") 
    public String MyAction() { return someSharedFunc(false); }

    @RequestMapping("/debug/ping");
    public String MyDebugPing() { return someSharedFunc(true); }

    private String someSharedFunc(boolean debug) {
      if(debug) return "FooBar"; else return "Debug!";
    }
}

このシナリオでは、MyDebugPing の URL は/foo/debug/ping. ただし、/debug/pingクラスの RequestMapping を効果的に無視して、それを望んでいます。

それは可能ですか?

4

1 に答える 1

10

クラスから注釈を削除し、@RequestMapping個々のメソッドごとにフル パスを使用するだけです。例えば

public class MyController {
    @RequestMapping("/foo/bar") 
    public String MyAction() { return someSharedFunc(false); }

    @RequestMapping("/debug/ping");
    public String MyDebugPing() { return someSharedFunc(true); }

    private String someSharedFunc(boolean debug) {
      if(debug) return "FooBar"; else return "Debug!";
    }
}

メソッドが多数ある場合は、メソッドを別のコントローラーに移動するだけです。

于 2012-05-04T01:19:42.307 に答える