2016-05-15 70 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

這是正確的。 –

回答