是否可以将控制器/控制器作为内部类嵌套在Spring 4 MVC中?

Tho*_*lin 2 java spring spring-mvc spring-annotations

我希望有一个映射到/site/两个不同控制器内部的控制器,看起来像:

@Controller
@RequestMapping(value="/api")
public class ApiController {
    @Controller
    @RequestMapping(value="/foo")
    public class FooController {
        //Some /foo/* methods here
    }

    @Controller
    @RequestMapping(value="/bar")
    public class BarController {
       //Some /bar/* methods here
    }

    //Other methods that don't match /foo or /bar
}
Run Code Online (Sandbox Code Playgroud)

这是可以的,或者将它分成两个独立的控制器/site/foo/site/bar映射是更好的做法吗?

小智 5

您应该使用方法而不是映射的类.代码应该像这样写

@Controller
@RequestMapping(value="/site")
public class ApiController {
    @RequestMapping(value="/foo", method=RequestMethod.GET)
    public String doFoo {
        // Foo Logic
        return "Running Foo";
    }
    @RequestMapping(value="/bar", method=RequestMethod.GET)
    public String doBar {
        // Bar Logic
        return "Running Bar";
    }
}
Run Code Online (Sandbox Code Playgroud)