Spring mvc多个视图解析器优先级以及freemarker中获取项目根路径

来源:互联网 发布:网络社区的主要功能 编辑:程序博客网 时间:2024/06/05 07:55

配置多个视图解析器,根据order属性值确定使用顺序,order值越小,优先级越高

<!--JSP视图解析器 -->    <bean id="viewResolverJsp" class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/WEB-INF/views/"/>        <property name="suffix" value=".jsp"/>        <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/>        <property name="order" value="1"/>    </bean>    <!-- FreeMarker视图解析器 -->    <bean id="freeMarkerViewResolver"          class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">        <property name="viewClass"                  value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />        <property name="contentType" value="text/html; charset=UTF-8" />        <property name="exposeRequestAttributes" value="true" />        <property name="exposeSessionAttributes" value="true" />        <property name="exposeSpringMacroHelpers" value="true" />        <property name="requestContextAttribute" value="request"></property>        <!-- 生产环境要改为true -->        <property name="cache" value="false" />        <property name="suffix" value=".ftl" />        <property name="order" value="0" />    </bean>    <!-- Freemarker配置 -->    <bean id="freemarkerConfig"          class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">        <property name="templateLoaderPath" value="/WEB-INF/views/" />        <property name="freemarkerVariables">            <map>                <entry key="xml_escape" value-ref="fmXmlEscape" />            </map>        </property>        <property name="freemarkerSettings">            <props>                <!-- 0不用重启即可查看修改的页面,生產環境爲了提高性能要設置更新時間 -->                <prop key="template_update_delay">0</prop>                <prop key="default_encoding">UTF-8</prop>                <prop key="number_format">#.####</prop>                <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>                <prop key="date_format">yyyy-MM-dd</prop>                <prop key="classic_compatible">true</prop>                <prop key="template_exception_handler">ignore</prop>                <prop key="auto_import">/common/spring.ftl as spring</prop>            </props>        </property>    </bean>    <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" />

在ftl文件中获取base路径,其中<property name="requestContextAttribute" value="request" />是关键。
<#assign base = request.contextPath /><script>    var base = "${base!''}";</script><!DOCTYPE html><html lang="zh-CN"><head>

阅读全文
0 0