有沒有辦法告訴Spring通過路徑變量的類型將請求映射到不同的方法,如果它們位於uri的相同位置?
例如,Spring RequestMapping:區分不同類型的PathVariable
@RequestMapping("/path/{foo}")
@RequestMapping("/path/{id}")
如果FOO應該是字符串,編號爲int,是有可能映射,而不是正確的找到請求URI?
有沒有辦法告訴Spring通過路徑變量的類型將請求映射到不同的方法,如果它們位於uri的相同位置?
例如,Spring RequestMapping:區分不同類型的PathVariable
@RequestMapping("/path/{foo}")
@RequestMapping("/path/{id}")
如果FOO應該是字符串,編號爲int,是有可能映射,而不是正確的找到請求URI?
根據彈簧的文檔,可以使用正則表達式路徑變量,這裏是從文檔的例子:從來看
@RequestMapping("/spring-web/{symbolicName:[a-z-]+}-{version:\\d\\.\\d\\.\\d}{extension:\\.[a-z]+}")
public void handle(@PathVariable String version, @PathVariable String extension) {
// ...
}
}
,它應該是可能爲你的情況寫這樣的東西:
@RequestMapping("/path/{foo:[a-z]+}")
@RequestMapping("/path/{id:[0-9]+}")
使用'@RequestMapping(「/ path/{foo:[A-Za-z] +}」)'來爲String獲取'大寫'。 –
這是不可能做到這一點,沒有大量的配置。你能舉一個這樣做的例子嗎? –
人們希望將某些API的格式更改爲第一種格式,而我已經有了類似第二種格式的內容。 – hsluo
這是不值得的麻煩。改變你的處理器方法。 –