UrlFilenameViewController在视图名称中保留URL扩展名

时间:2010-06-11 14:26:55

标签: spring spring-mvc

我正在使用Spring MVC,并且正在使用UrlFilenameViewController将传入的URL直接映射到我的View Resolver,而中间没有控制器。我正在使用它来让Freemarker编写CSS和JS文件,只需在适当的位置使用.css.ftl和.js.ftl文件即可。这一切都很有效。

某些浏览器似乎在没有Content-type of text / css的情况下返回.css文件时出现问题,而Freemarker视图解析器不允许根据请求的视图设置响应的内容类型。为了解决这个问题,我编写了自己的ViewResolver来查看View名称并根据该名称设置内容类型 - 因此任何以.css结尾的视图名称都将具有text / css的内容类型。这一点也很有用。

问题是,为了让我的视图名称为style.css,我需要实际请求style.css.css,因为UrlFilenameViewController剥离了扩展名以获取它正在使用的视图名称。如何阻止这种情况发生,以便“/style.css”实际上解析为“style.css”的视图,从而解析为“style.css.ftl”模板?

1 个答案:

答案 0 :(得分:0)

我建议继承UrlFilenameViewController并重写extractViewNameFromUrlPath()方法,只返回路径作为视图名称。

您还可以在SpringSource JIRA上提出问题,要求他们进行此配置。