Spring配置文件中可否设置多个viewResolver

2026年09月23日 13:15
有1个网友回答
网友(1):

  混合多种视图好像要用:ResourceBundleViewResolver
  

  如果使用多种视图,有一种办法是配置多个spring servlet

  这种办法是根据url后缀,选择使用不同的spring servlet。spring mvc也支持视图链,在一个spring servlet中,spring mvc可逐个选择视图。比如我需要支持freemarker视图和jsp/jstl视图,spring mvc可先查找是否有freemarker视图,如没有再查找jsp/jstl视图。

  以下是freemarker和jsp/jstl多视图配置文件:

   /WEB-INF/mm/freemarker/

  上面为ResourceBundleViewResolver设置了order属性,用于定义顺序,在jsp处理之前。

  这里使用了ResourceBundleViewResolver,还需要有它的配置文件,这里配置的名称是views.properties,需要把它放置在classpath的根下。

  register.(class)=org.springframework.web.servlet.view.freemarker.FreeMarkerView register.url=register.ftl

  这里的register,是spring mvc返回字符串的名称。url部分,要写freemarkerConfig中设置templateLoaderPath下的文件路径。