猿问

Spring MVC @PathVariable被截断了

Spring MVC @PathVariable被截断了

我有一个控制器,提供对信息的RESTful访问:

@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName}")public ModelAndView getBlah(@PathVariable String blahName, HttpServletRequest request,
                            HttpServletResponse response) {

我遇到的问题是,如果我使用带有特殊字符的路径变量命中服务器,它将被截断。例如: http:// localhost:8080 / blah-server / blah / get / blah2010.08.19-02:25:47

参数blahName将是blah2010.08

但是,对request.getRequestURI()的调用包含传入的所有信息。

知道如何防止Spring截断@PathVariable吗?


撒科打诨
浏览 929回答 3
3回答

幕布斯6054654

这可能与SPR-6164密切相关。简而言之,该框架尝试将一些智能应用于URI解释,删除它认为的文件扩展名。这将有转向的效果blah2010.08.19-02:25:47为blah2010.08,因为它认为.19-02:25:47是一个文件扩展名。如链接问题中所述,您可以通过DefaultAnnotationHandlerMapping在应用程序上下文中声明自己的bean并将其useDefaultSuffixPattern属性设置为来禁用此行为false。这将覆盖默认行为,并停止骚扰您的数据。
随时随地看视频慕课网APP
我要回答