【发布时间】:2014-11-17 18:19:11
【问题描述】:
我有提供对Project 实体的操作的 Spring 休息控制器。所有方法都使用相同的实体访问代码。我不想在所有方法中复制和粘贴@PathVariable 参数,所以我做了这样的事情。
@RestController
@RequestMapping("/projects/{userName}/{projectName}")
public class ProjectController {
@Autowired
ProjectService projectService;
@Autowired
protected HttpServletRequest context;
protected Project project() {
// get {userName} and {projectName} path variables from request string
String[] split = context.getPathInfo().split("/");
return projectService.getProject(split[2], split[3]);
}
@RequestMapping(method = GET)
public Project get() {
return project();
}
@RequestMapping(method = GET, value = "/doSomething")
public void doSomething() {
Project project = project();
// do something with project
}
// more @RequestMapping methods using project()
}
是否可以通过注释将路径变量自动连接到控制器中,这样我就不必拆分请求路径并从project() 方法的请求字符串中获取其中的一部分?
【问题讨论】:
-
看起来这个博客解决了你的痛点,但没有具体的例子:karthikg.wordpress.com/tag/spring-mvc
标签: java spring spring-mvc controller annotations