2011-01-28 67 views
2

給定的Spring MVC控制器上的以下請求映射:如何配置Spring MVC @PathVariables接受包含Dash的字符串?

@RequestMapping(method=GET, value="https://stackoverflow.com/users/{name}") 
ModelAndView findUser(@PathVariable String name) { 
    ... 
} 

我怎樣才能使它接受它一個破折號@PathVariable

下面的作品,fred傳遞作爲名稱:

GET /users/fred 

但是以下不工作,傳遞null替代名稱:

GET /users/u-fred 

我會在感激的建議如何定義@PathVariable以便它可以接受虛線字符串,例如u-fred

謝謝。

+1

只是好奇......你有一些'@ InitBinder`會導致這個問題嗎?一個帶破折號的字符串對我來說很好,我在我的項目中使用它很多。 – limc 2011-01-28 23:57:12

+0

如果不使用URL編碼,則虛線和下劃線是完全合法的字符。我想你可以做{foo} - {bar}並有2個參數,但這完全沒有必要。 – hisdrewness 2011-01-29 04:43:06

回答

2

我只是測試,與我的春天MVC 3.0.5應用程序,它正常工作與破折號:

  • 確保您運行的是最新版本的
  • 確保您正在跟蹤正確的請求(而不是一些假的,例如一個被遺忘的阿賈克斯請求)