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

 我来答
huanglenzhi
2014-12-18 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517193
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  混合多种视图好像要用:ResourceBundleViewResolver
  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/mm/jsp/" /> <property name="suffix" value=".jsp" /></bean>

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

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

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

  <bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" value="views" /> <property name="order" value="0" /></bean> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/mm/jsp/" /> <property name="suffix" value=".jsp" /></bean> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath"> <value>/WEB-INF/mm/freemarker/</value> </property></bean>

  上面为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下的文件路径。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式