尝试创建“文件名”部分中带有多个点的REST-ful URL-Spring 3.0 MVC
问题内容:
我正在将Spring MVC(3.0)与注释驱动的控制器一起使用。我想为资源创建REST风格的URL,并且能够 不
要求(但仍然允许)URL末尾的文件扩展名(但如果没有扩展名,则假定为HTML内容类型)。只要文件名部分中没有点(句点/句号),它就可以与Spring
MVC一起使用。
但是,我的某些URL要求名称中带有点的标识符。例如:
http://company.com/widgets/123.456.789.500
在这种情况下,Spring会为扩展.500
寻找内容类型,但没有找到错误。我可以使用诸如添加.html
到末尾,对标识符进行编码或添加斜杠之类的变通方法。我对这些都不满意,但可能会加入.html
。
我一直未找到在Spring中覆盖默认文件扩展名检测的方法。
是否可以针对给定的控制器方法或URL模式等自定义或禁用文件扩展名检测?
问题答案:
该@PathVariable
模式匹配是有点颠簸,当涉及到的URL点(见SPR-5778)。你可以把它颠簸少(但更挑剔),并获得过点沉重的URL更好的控制,通过设置useDefaultSuffixPattern
的属性DefaultAnnotationHandlerMapping
来false
。
如果尚未DefaultAnnotationHandlerMapping
在上下文中明确声明a
(并且大多数人没有为您隐式声明它),则可以显式添加它并设置该属性。