问题:
当 Spring MVC 控制器使用自定义路径变量定义 @PathVariable 时参数,包含特殊字符的路径段将被截断。
示例:
@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName}")
传递带有路径变量 blah2010.08.19-02:25:47 的 URI 将导致 blahName 参数被截断为 blah2010.08。
解决方案:
要防止截断,请在 @RequestMapping 参数中使用正则表达式:
@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName:.+}")
的 . = 正则表达式允许在前导点后使用任意数量的字符(包括特殊字符),从而有效地将整个路径段捕获为路径变量值。 request.getRequestURI() 将返回完整的 URI,包括完整的 blahName。
以上是如何在 Spring MVC 中防止 @PathVariable 截断?的详细内容。更多信息请关注PHP中文网其他相关文章!