在Spring3.2 後,一個@MatrixVariable出現了,這個註解的出現拓展了URL請求地址的功能。
Matrix Variable中,多個變量能夠使用「;」(分號)分隔,例如: app
- /cars;color=red;year=2012
若是是一個變量的多個值那麼能夠使用「,」(逗號)分隔 ui
或者能夠使用重複的變量名: spa
- color=red;color=green;color=blue
下面來一個例子說明: blog
- @RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET)
- public voidfindPet(@PathVariableString petId, @MatrixVariable intq) {
- }
再複雜一點就是這個例子: rem
- @RequestMapping(value = "/owners/{ownerId}/pets/{petId}", method = RequestMethod.GET)
- public voidfindPet(
- @MatrixVariable(value="q", pathVar="ownerId") intq1,
- @MatrixVariable(value="q", pathVar="petId") intq2) {
- }
針對每個Parh Variable綁定一個Matrix Variable,而後使用 value 和 pathVar屬性就能找到該值。
另外,正對Matrix Variable也是能夠指定自身的的屬性,例如,是否必須,默認值。
下面這個例子說明: get
- @RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET)
- public voidfindPet(@MatrixVariable(required=true, defaultValue="1") intq) {
- }
最後說明一下,若是要開啓Matrix Variable功能的話,必須設置 RequestMappingHandlerMapping 中的 removeSemicolonContent 爲false.
通常狀況不用你手動去設置這個屬性,由於這個屬性默認就是false ,若是你遇見Matrix Variable功能未開啓的時候就能夠看看是否是誤設置這個屬性爲true了。
結束博客