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中文网其他相关文章!