2011-01-12 134 views
5

我想拿出一個好習慣做我的應用程序的請求映射Spring MVC的請求映射約定

現在我有

RegistrationController { 
    @RequestMapping(value="/registerMerchant") 
    ... 
    @RequestMapping(value="/registerUser") 
    ... 
} 

但心不是理想的,因爲通過看網址你可能不知道在代碼RegistrationController

有沒有一種方法可以讓我programmitically前面加上控制器名稱這些映射的使他們:

/registration/registerMerchant 
/registration/registerUser 

回答

8

不是編程方式,但這種方式我見過的工作:

@Controller 
@RequestMapping(value="/registration/**") 
RegistrationController { 
    @RequestMapping(value="**/registerMerchant") 
    ... 
    @RequestMapping(value="**/registerUser") 
    ... 
} 

話雖如此,在過去我發現這很難以我期望的方式工作。它可以被製作,但。

+0

你發現上面的模式很難使用?爲什麼?此外,我還沒有結婚這個公約,你能推薦一些其他的理智的方式來做請求映射嗎? – mkoryak 2011-01-12 16:58:10

4

我認爲** /在方法級別噪聲太大。在另一個說明中,可以使用更多的名詞和更少的動詞來使URI更加REST。

@Controller 
@RequestMapping("/services") 
public class RegistrationController { 

    @RequestMapping(value = "/merchant/register") 
    public void processMerchantRegistration() { 

    } 

    @RequestMapping(value = "/user/register") 
    public void processUserRegistration() { 

    } 

}