Spring MVC 中的路徑變數被截斷
在Spring MVC 中使用路徑變數時,可能會遇到變數中包含特殊字元的情況導致其被截斷。這可能會導致意外的結果和錯誤。
問題:
在提供的控制器中,當存取具有特殊字元的 URL 時,@PathVariable blahName 會被截斷。例如,像「get/blah2010.08.19-02:25:47」這樣的路徑將導致 blahName 設定為「blah2010.08」。
原因:
預設情況下,Spring MVC 希望路徑變數遵循特定的格式,句點和破折號等字元通常被解釋為分隔符號。這會導致變數在遇到此類字元時被截斷。
解決方案:
要防止截斷,可以在 @ 中使用正規表示式請求映射參數。這允許您為路徑變數指定更靈活的模式。例如,以下正規表示式將允許 blahName 變數中包含任何字元:
@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName:.+}")
透過新增 :. 對於@PathVariable,您可以將模式符合任何字元一次或多次。這可確保捕獲整個路徑變量,無論它可能包含任何特殊字元。
以上是如何防止 Spring MVC 中的路徑變數被截斷?的詳細內容。更多資訊請關注PHP中文網其他相關文章!