zoukankan      html  css  js  c++  java
  • spring boot 配置 freemarker

    1.springboot 中自带的页面渲染工具为thymeleaf 还有freemarker 这两种模板引擎 简单比较下两者不同,

    1.1freemaker 优点

    freemarker 不足:thymeleaf由于使用了标签属性做为语法,模版页面直接用浏览器渲染,使得前端和后端可以并行开发。freemarket使用</>这样的语法,就无法直接使浏览器渲染出原本页面的样子。

    thymeleaf优点:

    1. 静态html嵌入标签属性,浏览器可以直接打开模板文件,便于前后端联调。
    2. springboot官方推荐方案。

    thymeleaf缺点:

    1. 模板必须符合xml规范

    比较下两者

    1.从写code的习惯角度可能freemarker更习惯于我们的思维。
    2.不过从前后分离开发的角度看thymeleaf更合适,值的绑定都是基于html的dom元素属性的,适合前后联调。

    还是回归下主题

    开始编码:

    1.引入pom依赖

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-freemarker</artifactId>
            </dependency>

    2.向yml格式配置文件添加内容

    spring:
      freemarker:
        request-context-attribute: req  #req访问request
       suffix: .html  #后缀名
        content-type: text/html
        enabled: true
        cache: false #缓存配置
        template-loader-path: classpath:/templates/ #模板加载路径 按需配置
        charset: UTF-8 #编码格式
        settings:
          number_format: '0.##'   #数字格式化,无小数点

    3.测试接口如图

    4.index文件位置如图

    index 内容

    5.启动项目如图

    index页面渲染成功

    网上收集 propertity的freemarker 配置 (propertity格式配置文件)

     # FREEMARKER (FreeMarkerAutoConfiguration)
    spring.freemarker.allow-request-override=false # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.
    spring.freemarker.allow-session-override=false # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.
    spring.freemarker.cache=false # Enable template caching.
    spring.freemarker.charset=UTF-8 # Template encoding.
    spring.freemarker.check-template-location=true # Check that the templates location exists.
    spring.freemarker.content-type=text/html # Content-Type value.
    spring.freemarker.enabled=true # Enable MVC view resolution for this technology.
    spring.freemarker.expose-request-attributes=false # Set whether all request attributes should be added to the model prior to merging with the template.
    spring.freemarker.expose-session-attributes=false # Set whether all HttpSession attributes should be added to the model prior to merging with the template.
    spring.freemarker.expose-spring-macro-helpers=true # Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext".
    spring.freemarker.prefer-file-system-access=true # Prefer file system access for template loading. File system access enables hot detection of template changes.
    spring.freemarker.prefix= # Prefix that gets prepended to view names when building a URL.
    spring.freemarker.request-context-attribute= # Name of the RequestContext attribute for all views.
    spring.freemarker.settings.*= # Well-known FreeMarker keys which will be passed to FreeMarker's Configuration.
    spring.freemarker.suffix= # Suffix that gets appended to view names when building a URL.
    spring.freemarker.template-loader-path=classpath:/templates/ # Comma-separated list of template paths.
    spring.freemarker.view-names= # White list of view names that can be resolved.

    另外需要使用thymeleaf 可以使用如下配置(yml 格式配置文件方式)

    ##视图模型
    spring:
      thymeleaf:
        prefix: classpath:/templates/
        suffix: .html
        cache: false
        encoding: utf-8
        content-type: text/html
        check-template-location: true

  • 相关阅读:
    Python-os
    Python-字典Dict
    Linux下使用Apache搭建Web网站服务器
    Linux中FTP安装与配置
    第16章 广域网
    第15章 IPv6
    第14章 思科无线技术
    第13章 网络地址转换NAT
    第12章 安全
    第11章 虚拟局域网
  • 原文地址:https://www.cnblogs.com/jtlgb/p/8548436.html
Copyright © 2011-2022 走看看