2010-06-11 58 views
1

我使用Spring MVC,并使用UrlFilenameViewController将传入的URL直接映射到我的View Resolver上,而无需控制器。我正在使用它来让Freemarker编写CSS和JS文件,只需在合适的地方放置一个.css.ftl和.js.ftl文件即可。这一切都很好。UrlFilenameViewController在视图名称中保留URL扩展

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

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

回答

0

我建议子类化UrlFilenameViewController和覆盖extractViewNameFromUrlPath()方法只返回路径作为视图名称。

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