2016-05-15 66 views
0

我有一个控制器类具有以下签名:如何简化这些控制器的请求映射?

@Controller 
@RequestMapping("/home/users") 
public class MaterialsController { ... } 

和每个方法在该控制器类开始具有相同路径变量,即,{username},例如,我已经下面的方法:

@RequestMapping(value = "{username}/mycreations/{coursewareName}/materials/{materialId}", method = RequestMethod.DELETE) 
public void deleteCourseMaterialFromCreatedCourseware(@PathVariable String username, 
     @PathVariable String coursewareName, @PathVariable String materialId, Model model, 
     HttpServletRequest request, HttpServletResponse response) { 

现在,在这些控制器的每个方法的开始处写{username}是有点繁琐。有没有办法在类级别指定此路径变量?当然,我也需要访问它,就像我在上面的方法中指定@PathVariable String username一样。

另外,我理想的情况是,我还希望在必要时在课堂级别包含多个变量。

+0

您可以将路径移到类级yes,但不是参数。 –

+1

因此,例如,我可以在课程级别具有以下路径'/ home/users/{username}',然后在方法级别只有'mycreations/{coursewareName}/materials/{materialId}“',但仍然在方法级别保留'@PathVariable字符串用户名'? – nbro

+2

这是正确的。 –

回答