假设以下设置:
我们有多个命令映射到不同的URL,每个URL都有自己的主体,我们可以使用映射捕获它们,例如:
@RequestMapping(value = "url1/{param}/command", method = RequestMethod.POST)
@ResponseBody
public Response command1(@PathVariable("param") String param,
@RequestParam(value = urlParam) Param urlParam,
@RequestBody Request request) {
...}
我们有几种情况,其中相同的参数在多个网址中重复,特别是URL参数。由于我们有几个这样的变量,今天我们手动将它们添加到每个映射中,这个映射容易出错且过于冗长。
无论如何通过初始映射路由所有映射,捕获所有这些url参数,从而消除所有其他映射的混乱?
答案 0 :(得分:0)
如果从Spring MVC切换到任何JAX-RS框架(例如Jersey,Apache Wink),您可以使用子资源:
@Path("/parent/{id}")
class ParentResource {
@Path("/child1")
Child1Resource getChild() {
....
}
@Path("/child2")
Child2Resource getChild() {
....
}
}
注意带有@Path注释的方法没有使用HTTP方法注释,因此任何与url匹配的相关HTTP请求都会传播到子资源中。
减少错误发音的另一个建议:在创建url和使用参数时都使用常量(public final static String)作为参数。这使它更加冗长,但减少了错误。它可以与Spring-MVC和JAX-RS一起使用。不要忘记可以将常量放在注释值中。
希望这有帮助。