springmvc如何设置多视图器(ViewResolver)

下面以jsp、freemarker举例:

Springmvc整合freemarker:https://blog.csdn.net/fd2025/article/details/80409991

   
    <bean id="viewResolverCommon" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp"/>
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="order" value="1"/>
    bean>
    
    <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <property name="viewClass"
            value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
        <property name="prefix" value=""/>
        <property name="contentType" value="text/html; charset=utf-8" />
        <property name="requestContextAttribute" value="request" />
        <property name="suffix" value=".ftl" />
        <property name="order" value="0"/>
    bean>

只要在viewResolver中配置 order 即可;

DispatcherServlet会加载所有的viewResolver到一个list中,并按照优先级进行解析。

注意:

  • order中的值越小,优先级越高。

  • 而id为viewResolver的viewResolver的优先级是最低的。

如果某个解析器没有找到合适的视图,Spring会在上下文中寻找是否配置了其它的解析器。 如果有,它会继续进行解析,否则,Srping会抛出一个Exception。

springmvc如何设置多视图器(ViewResolver)_第1张图片

你可能感兴趣的:(SpringMVC)