@RequestMapping(value = "/release/{key}", method = RequestMethod.GET) public @ResponseBody String release(@PathVariable String key) { log.debug("取得key值 {}", key); return release; }但是當 key 值有「.」時就會出錯,比如說「/release/a.b.c」,到了 @PathVariable 就只剩下「a.b」,「.c」不見了,原因出現 Spring MVC 預設會切掉最後一個點以後的字串,應該是在處理「*.do」這樣的 Url pattern 的關係。
解決方式:在 @PathVariable 裡使用 Regular Expression 來設定 key 值的長相。
@RequestMapping(value = "/release/{key:[a-zA-Z0-9\\.]+}", method = RequestMethod.GET)
public @ResponseBody
String release(@PathVariable String key) {
log.debug("取得key值 {}", key);
return release;
}
這樣就沒問題了。
沒有留言:
張貼留言