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 回答