Spring MVC DefaultRequestToViewNameTranslator大小写问题

时间:2009-05-11 18:28:24

标签: java spring spring-mvc

我正在使用Spring MVC尝试整个“约定优于配置”的东西。 Spring有各种各样的工具来帮助解决这个问题,我正在尝试其中的一些。但是,我遇到了一个问题,我们团队的配置与Spring想要的完全不符。

问题是我们使用“http://ourSite/SomePage.do”这样的网址,将它们放到“SomePageController”中,并使用“somePage.jsp”进行渲染。请注意,SomePage.do以大写字母开头,而somePage.jsp则不是。 Spring的DefaultRequestToViewNameTranslator似乎保留了大写字母,而ViewResolvers无法弄清楚如何将第一个字符设为小写。

有没有办法配置NameTranslator或ViewResolver使第一个字母小写?

1 个答案:

答案 0 :(得分:3)

Javadocs for DispatcherServlet指定如何确定'viewNameTranslator':

  

如果用户未提供视图或视图名称,则配置的RequestToViewNameTranslator会将当前请求转换为视图名称。相应的bean名称是“viewNameTranslator”;默认值为DefaultRequestToViewNameTranslator

因此,如果您想要稍微不同的“视图名称转换器”行为,则必须提供自己的实例。您可以轻松地将DefaultRequestToViewNameTranslator子类化为添加有关文件名大小写的逻辑。

但说实话,我真的建议您的控制器返回命名视图,而不必依赖视图名与URI相同。这使您可以为多个URL /控制器使用相同的视图,并允许您从URL中真正抽象出“视图”的概念。

(说实话,我已经在一个相当大的应用程序上使用Spring MVC大约5个月了,甚至不知道这个DefaultRequestToViewNameTranslator类在框架中或者“viewNameTranslator”是DispatherServlet将使用的东西!)