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访问or时查询字符串会有所不同/second,并且可能有不同的参数。

4

1 回答 1

0

步骤 1) 创建一个捕获@Path("/"). 让我们称之为“Class1”

步骤 2) 在 Class1 中创建一个方法,但不要更改@Path("")此方法的方法。确保它适当地捕获@QueryString("param") String firstOrLast. 让我们称之为“方法1”

步骤 3) 现在,当您访问时localhost?param=firstClass1.Method1()会调用 ,。因此,在此方法中,您可以构建一些逻辑(例如if (firstOrLast.equals("first")) { // call method_x },method_x 是您调用的相关委托方法。

于 2015-09-28T13:45:47.453 回答