2012-01-29 62 views
3

考慮下面的例子:避免斜槓(/)彈簧RequestMapping之間

@Controller 
@RequestMapping({"/home"}) 
public class Home { 
    @RequestMapping(value = { "", "/" }) 
    public String index() { 
     return "home"; 
    } 
    @RequestMapping(value = { "-of-{id}" }) 
    public String of(@PathVariable("id") String id) { 
     System.out.println(id); 
     return "home"; 
    } 
} 

指數()被映射到 '/家' 和 '/家/' 完美;但是當我想將它映射到'/ home-of- {id}'時,(id)映射到'/ home/-of- {id}'。

Spring自動在'/ home'和'-of- {id}'之間添加一個斜槓,但我想消除它,任何建議?

回答

3

當您定義類級映射時,Spring會將方法級映射視爲附加段,而不是字符串連接。所以你不能使用你正在嘗試的方法獲得/home-of-{id}

嘗試擺脫類級別@RequestMapping,並用完全顯式路徑替換現有的方法級別映射。將@RequestMapping("/home-of-{id}")放在of()上。

如果你打算有很多/home/路徑需要支持(因此你想保留類級別的定義),只需將/home-of-{id}移動到一個單獨的控制器,你就可以做到這一點。

0

刪除類級映射並映射每個方法。當你映射一個類和方法時,它們是分層的。 (或創建不同類別)。