FreeMarker学习(springmvc配置)

springMvc配置

<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="templateLoaderPath" value="/WEB-INF/templates/"/>
    <property name="defaultEncoding" value="utf-8" />
    <property name="freemarkerSettings">
      <props>
        <prop key="template_update_delay">10</prop>
        <prop key="locale">zh_CN</prop>
        <prop key="datetime_format">yyyy-MM-dd</prop>
        <prop key="date_format">yyyy-MM-dd</prop>
        <prop key="number_format">#.##</prop>
        <prop key="auto_import">frame/base.ftl as base</prop>
        <prop key="auto_include">frame/base.ftl</prop>
      </props>
    </property>
    <!--设置一些常用的全局变量 -->
    <property name="freemarkerVariables">
        <map>
            <entry key="xml_escape" value-ref="fmXmlEscape" />
            <entry key="webRoot" value="/shop"></entry>
            <entry key="jsRoot" value="/shop/js"></entry>
            <entry key="xml_escape" value-ref="fmXmlEscape" />
        </map>
    </property>
</bean>

<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <property name="cache" value="true" />
    <property name="suffix" value=".ftl" />
    <property name="contentType" value="text/html;charset=UTF-8" />
    <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
    <property name="allowSessionOverride" value="true" />
    <property name="allowRequestOverride" value="true" />
    <property name="exposeSpringMacroHelpers" value="false" />
    <property name="exposeRequestAttributes" value="true" />
    <property name="exposeSessionAttributes" value="true" />
    <property name="requestContextAttribute" value="request" />
    <property name="order" value="0" />
</bean>

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="" />
    <property name="viewNames" value="*.html,*.jsp" />
    <property name="suffix" value="" />
    <property name="viewClass"
        value="org.springframework.web.servlet.view.InternalResourceView" />
    <property name="order" value="1"></property>
</bean>

freemarkerSettings全局配置:

  • template_update_delay:模板缓存时间,超过这个时间值,直接从磁盘获取最新的模板。
  • locale:配置本地化语言
  • datetime_format:配置日期时间格式
  • date_format:配置日期格式
  • number_format:配置数字格式
  • auto_import:自动导入模板文件,需要定义一个命名空间
  • auto_include:自动包含模板文件,不需要定义一个命名空间

其他详情参考setting配置:https://freemarker.apache.org/docs/api/freemarker/template/Configuration.html#setSetting-java.lang.String-java.lang.String-

freemarkerVariables全局变量设置:

  • xml_escape
  • webRoot
  • jsRoot
  • xml_escape

FreeMarkerViewResolver:

  • order:匹配视图解析器优先级,值越小优先级越高。如果匹配不成功,则自动选择order=1的其他解析器,目前的通用解析器可以解析.html跟.jsp的视图,如果需要其他视图的解析器,可以自行添加。
  • exposeRequestAttributes、exposeSessionAttributes两个属性都被设置为true。结果是请求和会话属性都被复制到模板的属性集中,可以使用FreeMarker的表达式语言来访问并显示。使用这些宏,必须设置FreeMarkerViewResolver的exposeSpringMacroHelpers属性为true。

原文地址:https://www.cnblogs.com/lpob/p/10835824.html

时间: 2024-11-10 01:20:43

FreeMarker学习(springmvc配置)的相关文章

SpringMVC与Freemarker集成,配置项目全局的绝对路径

我发现网上这方面的相关内容不是很多(当然我学习的不是很深入).在开源中国上也发了一个贴子,有网友帮忙解答,下面附上解决方案,如果对大家有所帮助,我心甚慰! 首先定义一个类,继承FreeMarkerView. import org.springframework.web.servlet.view.freemarker.FreeMarkerView; import javax.servlet.http.HttpServletRequest; import java.util.Map; public 

SpringMVC配置多视图JSP+freemarker,实践成功!(网上好多坑)

今天自己配置了一下SpringMVC 的多视图,本以为很简单,实践后发现各种问题,在网上查了很多资料,最后还是选择了看源码,终于知道为什么失败了,下面介绍一下. 失败配置! 成功只是改了几个小地方. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="ht

SpringBoot学习-SpringMVC自动配置

SpringBoot学习-SpringMVC自动配置 前言 在SpringBoot官网对于SpringMVCde 自动配置介绍 1-原文介绍如下: Spring MVC Auto-configuration Spring Boot provides auto-configuration for Spring MVC that works well with most applications. The auto-configuration adds the following features

freemarker学习 (servlet + freemarker -&gt; Struts2+freemarker -&gt; springMVC+freemarker)

什么是freemarker? freemarker类似于jsp,但不是jsp!怎么说呢?freemarker文件后缀是.ftl,它不像jsp本质是servlet,它将构建模板.解析模板.使用模板分离开来了. 这个回答很好:源于:https://zhidao.baidu.com/question/489425455706898652.html 运行机制就不大一样,jsp是编译成继承自servlet的class文件,运行jsp就是运行一个servlet 而freemarker就是套模板,通过模板+内

SpringMVC 配置多视图解析器(velocity,jsp)

1.自定义视图解析器 package com.zhaochao.controller; import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework

springmvc 配置过程及详解

加入jar包 在web.xml中 添加spring监听器 <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 添加spring容器(父容器)配置文件: <context-param> <param-name>contextConfigLocation</param

springMVC配置jsp/html视图解析器

目录 1.maven项目引入freemark相关jar包 2.freemarker.properties 3.配置视图解析器 参考自springMVC配置jsp.html多视图解析器,本文稍作补充 1.maven项目引入freemark相关jar包 freemaker是以个模板引擎,可以根据提供的数据和创建好的模板,去自动的创建html静态页面.所以在返回html视图时可以用这个引擎结合数据生成html静态页面. <dependency> <groupId>org.springfr

2.学习SpringMVC注解入门篇

一.SpringMVC执行流程 . 二.创建项目学习SpringMVC注解 按照我之前的SpringMVC创建项目,首先创建一个项目springmvc01,配置好pom.xml,web.xml,springmvc.xml文件之后创建一个HelloController. 1.RequestMapping注解 1 //控制器类 2 @Controller 3 @RequestMapping("/user") 4 public class HelloController { 5 6 @Req

SpringMVC配置实例

一.SpringMVC概述 MVCII模式实现的框架技术 Model--业务模型(Biz,Dao...) View--jsp及相关的jquery框架技术(easyui) Contraller--DispatcherServlet以及控制器组件 二.控制器组件 1).DispatherServlet 2).xxx-servlet.xml文件 3).转向模型ModelAndView类 4).相应的Aop组件和拦截器组件 三.springMvc的开发步骤 1.在当前工程引入spring组件包 2.编写