2012-05-03 62 views
14

我是新的春季框架....在谷歌搜索..我發現幾個例子有@RequestMapping在類級別註釋和少數例子顯示它在menthod水平任何人都可以解釋我的級別控制器和方法級別控制器之間的區別。

何時使用類級別RequestMapping和menthod級別的RequestMapping註解...任何人都可以解釋我在類級別RequestMapping和方法級別RequestMapping之間的區別。

讓我有點困惑,在他們的應用程序:

一)類級別

b)方法水平

另外,我發現了一些@Requestmapping類型:GET/POST ,而一些例子沒有類型參數。

哪種方法更好。

是新版本(> Spring 2.5)不需要參數類型的請求映射?

回答

16

控制器必須在課堂級別標記爲@Controller@RequestMapping註釋可以在類和方法級應用。如果是,則方法註釋將被解釋爲相對URL(相對於類級URL)。但是,方法級別註釋必須存在,否則該方法不會被映射。

在註釋中,可以使用默認值將參數標記爲可選。方法參數是這種情況:它默認爲GET,但可以明確設置爲POST或其他。

參見:

+0

Patrick Floyed:感謝這樣寶貴的信息! – JOHND

+0

如果你能解釋我「如果是,方法註解將被解釋爲相對URL(相對於類級URL)。但是,方法級註釋必須存在,否則方法將不會被映射。 ,我會感激你的! – JOHND

+11

如果該方法映射到foo/bar而不是foo/bar是地址。但如果類映射到baz,並且該方法映射到foo/bar,則該方法的地址是baz/foo/bar –

-1

要回答你的最後一個問題,即哪一個更好,我會說,在生產,我們使用這兩種組合。例如,如果有用戶控制器,我們將類映射到「/ user」,並且方法認爲getSettings()將映射到「/ settings」,而getPermissions()的方法將映射到「/ permissions」等。

您可以直接將這些方法映射到「/ user/settings」和「/ user/permissions」並跳過類映射。但大多我們更喜歡第一種方法。

相關問題