我有一个控制器,提供对信息的RESTful访问:
@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName}")
public ModelAndView getBlah(@PathVariable String blahName, HttpServletRequest request,
HttpServletResponse response) {
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,如果我使用带有特殊字符的路径变量命中服务器,它将被截断.例如: http:// localhost:8080/blah-server/blah/get/blah2010.08.19-02:25:47
参数blahName将是blah2010.08
但是,对request.getRequestURI()的调用包含传入的所有信息.
知道如何防止Spring截断@PathVariable吗?
我正在使用Spring MVC(3.0)和注释驱动的控制器.我想为资源创建REST-ful URL,并且不能要求(但仍然可选地允许)URL末尾的文件扩展名(但如果没有扩展名,则假定为HTML内容类型).只要文件名部分没有点(句点/句号),这就可以与Spring MVC一起开箱即用.
但是,我的某些网址需要名称中带有点的标识符.像这样:
http://company.com/widgets/123.456.789.500
Run Code Online (Sandbox Code Playgroud)
在这种情况下,Spring会查找扩展的内容类型,.500并找不到任何错误.我可以使用解决方法,如添加.html到最后,编码标识符或添加尾部斜杠.我对这些不满意,但可能会加入.html.
我没有成功地寻找一种覆盖Spring中默认文件扩展名检测的方法.
是否可以为给定的控制器方法或URL模式等自定义或禁用文件扩展名检测?