1、添加依赖

  org.springframework.boot

  spring-boot-starter-freemarker

  2、配置application.properties

  spring.freemarker.template-loader-path=classpath:/templates/

  spring.freemarker.charset=utf-8

  spring.freemarker.cache=false

  spring.freemarker.suffix=.ftl

  spring.freemarker.request-context-attribute=request

  3、创建资源目录

  resources 下创建 templates 目录,新增 index.ftl 文件

  ${name}

  4、编写控制器

  import org.springframework.stereotype.Controller;

  import org.springframework.ui.Model;

  import org.springframework.web.bind.annotation.RequestMapping;

  @Controller

  public class TestController {

  @RequestMapping(value = "/test")

  public String test(Model model){

  model.addAttribute("name", "admin");

  return "index";

  }

  }

  5、模板渲染工具类

  package com.vim.common.utils;

  import freemarker.template.Configuration;

  import freemarker.template.Template;

  import org.springframework.core.io.DefaultResourceLoader;

  import org.springframework.core.io.Resource;

  import java.io.*;

  import java.util.Map;

  public class FreemarkerUtils {

  /**

  * 使用模板字符串

  * @param templateString

  * @param model

  */

  public static String renderString(String templateString, Map model) {

  try {

  StringWriter result = new StringWriter();

  Template t = new Template("name", new StringReader(templateString), new Configuration());

  t.process(model, result);

  return result.toString();

  } catch (Exception e) {

  e.printStackTrace();

  }

  return null;

  }

  /**无锡人流医院哪家好 http://www.wxbhnkyy120.com/

  * 配置模板文件位置

  * @param directory

  * @return

  * @throws IOException

  */

  public static Configuration buildConfiguration(String directory) throws IOException {

  Configuration cfg = new Configuration(Configuration.VERSION_2_3_26);

  Resource path = new DefaultResourceLoader().getResource(directory);

  cfg.setDirectoryForTemplateLoading(path.getFile());

  return cfg;

  }

  /**

  * 使用模板文件

  * @param template

  * @param model

  */

  public static void renderTemplate(Template template, Map model, String saveFile) {

  try {

  FileWriter out = new FileWriter(new File(saveFile));

  template.process(model, out);

  } catch (Exception e) {

  e.printStackTrace();

  }

  }

  }

  6、注意事项

  freemarker 文件中的 js 引用一定要加闭合标签,且不能使用/>

Java -- springboot 配置 freemarker的更多相关文章

  1. SpringBoot入门-15(springboot配置freemarker使用YML)

    https://blog.csdn.net/fengsi2009/article/details/78879924 application.yml spring: http: encoding: fo ...

  2. springboot使用Freemarker继承

    最近需要用到Freemarker的继承.但是发现没有关于springboot配置Freemarker的继承的.所以趁现在有时间写个博客. 1. Freemarker继承介绍 Freemarker 通过 ...

  3. SpringBoot下配置FreeMarker配置远程模版

    需求产生原因 要求在同一个接口中,根据不同的参数,返回不同的视图结果 所有的视图中的数据基本一致 要求页面能静态化,优化SEO 例如:A接口返回客户的信息 客户A在调用接口时,返回其个性化定制的页面A ...

  4. springboot配置server相关配置&整合模板引擎Freemarker、thymeleaf&thymeleaf基本用法&thymeleaf 获取项目路径 contextPath 与取session中信息

    1.Springboot配置server相关配置(包括默认tomcat的相关配置) 下面的配置也都是模板,需要的时候在application.properties配置即可 ############## ...

  5. 【转载】JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案

    JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案 本文为转载,原文地址为:https://www.cnblogs.com/adversary/p/103 ...

  6. springboot集成freemarker 配置application.properties详解

    #配置freemarker详解 #spring.freemarker.allow-request-override=false # Set whether HttpServletRequest att ...

  7. springboot集成freemarker属性配置(不知道是针对于某个版本,2.0后有变动)

    freemarker属性配置 freemarker属性配置: spring.freemarker.allow-request-override=false # 设置是否允许HttpServletReq ...

  8. 【Other】最近在研究的, Java/Springboot/RPC/JPA等

    我的Springboot框架,欢迎关注: https://github.com/junneyang/common-web-starter Dubbo-大波-服务化框架 dubbo_百度搜索 Dubbo ...

  9. 记springboot+mybatis+freemarker+bootstrap的使用(1)

    一..springboot的配置 1.安装并配置maven maven是项目管理工具,可以自动下载并管理jar包之间的依赖关系,可通过maven自动配置springboot 参照百度经验https:/ ...

随机推荐

  1. com.alibaba.druid.pool.DruidPooledConnection cannot be cast to oracle.jdbc.OracleConnection 异常解决办法

    java.lang.ClassCastException: com.alibaba.druid.pool.DruidPooledConnection cannot be cast to oracle. ...

  2. SoapUI: 从属性变量里面读取值, 把string 转换成arraylist

  3. Java: Java终止线程的几种方式

    首先说明,使用stop方法终止的方式已经在很久之前就被废弃了,在加锁的情况下有可能会造成死锁,这里不做讨论. 1. 使用标志位终止线程 在run()方法执行完毕后,该线程就终止了.但是在某些特殊的情况 ...

  4. PHP & JS 链接跳转的几种方式

    网站开发中,我们经常需要使用链接跳转,比如登录成功后,自动跳转到首页等等,下面方面介绍 PHP & JS 的几种链接跳转方式 PHP <?php header("Locatio ...

  5. 小程序 图表 antv f2 的使用

    官方组件版 https://github.com/antvis/wx-f2/tree/custom-components 官方npm版 https://github.com/antvis/wx-f2 ...

  6. [Linux] cronjob指定用户运行脚本,并按日期区分输出日志

    废话不多说,直接上代码,在root的cronjob,指定nginx用户跑cronjob */1 * * * * su nginx -c "/usr/local/scripts/goods.s ...

  7. Jmeter做压力测试

    1)首先双击bin/jmeter.bat 2)创建Thread Group 3)配置HTTP Request 4)配置Aggregate Report 5)配置并发数和并发时间 6)点击绿色按钮,执行 ...

  8. 深入Nginx之《HTTP请求报文与HTTP响应报文》

    HTTP请求报文 这个很有必要了解,好歹我们得知道Nginx在提供HTTP服务时,客户端都会传些什么.HTTP请求中客户端传送的内容称为HTTP请求报文. 1.请求行包含: 请求方法,请求URL,HT ...

  9. myeclipse An internal error occurred during: "Initialize metrics".

    重新安装的myeclipse,在打开的时候弹出:    An internal error occurred during: "Initialize metrics". com/g ...

  10. 手把手教你创建electron+vue项目

    electron可以结合前端的很多框架来进行快速的开发.在这里只讲一种electron结合vue并且使用前端的elementui来快速搭建一个项目页面. 第一步.创建electron 以管理员身份运行 ...