2011-11-29 63 views
0

假定以下設置:春天 - 抽象URL映射到處理常見的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參數。由於我們有幾個這樣的變量,今天我們手動將它們添加到每個容易出錯和過於冗長的映射中。

是否有通過初始映射路由所有映射,捕獲所有這些url參數,從而消除所有其他映射混亂?

回答

0

如果你從Spring MVC中切換到任何JAX-RS框架(如新澤西州,阿帕奇眨眼),你可以使用子資源:

@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。不要忘記,可以將常量放入註釋值中。

希望這會有所幫助。

+0

我們已經使用了常量,但方法簽名仍然非常難看 – user44242

+0

嗯,我想這是使用註釋的折中... – user1070859