我有一个控制器,可提供基于REST访问 我遇到的问题是,如果我打的服务器路径变量有特殊字符它就会被截断。例如: 该会blah2010.08 但是,调用request.getRequestURI()包含了所有传入 任何想法如何预防春季从截断@PathVariable?本文地址 :CodeGo.net/188291/ ------------------------------------------------------------------------------------------------------------------------- 1. 尝试使用正则表达式为 @RequestMapping
2. 这大概是密切相关的SPR-6164。简单地说,试图智慧应用到URI的解释,消除它认为是文件扩展名。这将有转弯的效果 blah2010.08.19-02:25:47 成blah2010.08 的,因为它认为.19-02:25:47 是一个文件扩展名。 作为链接的问题描述,您可以通过声明自己禁用此行为DefaultAnnotationHandlerMapping 豆在应用程序上下文,并设置其useDefaultSuffixPattern 属性为false 。这将覆盖默认行为,并停止它骚扰你的数据。 3. 最后一个点后,一切都被解释为文件扩展名,默认情况下切断。 在Spring的XML配置,您可以添加 DefaultAnnotationHandlerMapping 并设置useDefaultSuffixPattern 至false (默认为true )。 所以,打开你的Spring XMLmvc-config.xml (或者不管它被称为),并添加 现在你的@PathVariable blahName (和所有其他,太)应包含完整的,包括所有的点。 编辑:这里是一个链接到spring的api 4. 我也碰到了这个问题,并且将该属性设置为false,没有任何。但是,该API说: 请注意,其中包括一个“XXX”后缀或结尾的路径以“/”已 将不使用在任何情况下,默认的后缀模式。 我尝试添加“/结束”我的REST风格的URL和问题就走了。我不是用讨好的解决方案,但它确实工作。 顺便说一句,我不知道他们什么时候加入这个“功能”,然后在默认情况下打开它什么spring的设计师的想法。 IMHO,它应该被删除。 5. 我只是碰到了这一点,解决方案在这里没有一般工作如我所料。 我一个规划环境地政司的表达和多个映射,例如
6. 我决定用这个技巧 1)增加了HttpServletRequest中的@PathVariable像下面 2)直接获取的URL(在这个层面上没有截断)的请求 Spring MVC的@PathVariable以点(。)是越来越截断 7. 文件扩展名问题只存在如果是在URL的最后一部分。变化 至 一切都会好起来, 8. 如果你可以编辑请求被发送到地址,简单的解决办法是加上结尾的斜线给他们(和也在 @RequestMapping 值): 这样的映射将如下所示:
|
|