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. Cookie的Secure属性和HttpOnly属性

    基于安全的考虑,需要给cookie加上Secure和HttpOnly属性,HttpOnly比较好理解,设置HttpOnly=true的cookie不能被js获取到,无法用document.cookie ...

  2. 真机调试No target device的解决(android studio)3.4.1

    驱动等都正常,手机连接正常.但是还是报错 搜索到如下办法成功解决:adb未启动或启动失败,这时候选择android studio界面底端的logcat,会自动重启adb.

  3. systemctl start docker失败,提示start request repeated too quickly for docker.service

    情景说明 本来服务器docker服务运行的很好,但客户重启了服务器-于是服务有些问题,遂进入到服务器再次启动docker及服务.不料提示上面的错误-- 解决办法 尝试1 Google了一圈,发现说法很 ...

  4. python2 pickle.dump生成的文件,python3 pickle.load怎么加载

    会报错: UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 3: ordinal not in range(12 ...

  5. Linux performance monitor tool

    https://www.tecmint.com/command-line-tools-to-monitor-linux-performance/ https://www.tecmint.com/lin ...

  6. Consider defining a bean of type 'com.*.*.mapper.*.*Mapper' in your configuration.

    @Mapper 不能加载的问题 Consider defining a bean of type 'com.*.*.mapper.*.*Mapper' in your configuration. 添 ...

  7. webService和Restful

    restful是一种架构风格,其核心是面向资源,更简单:而webService底层SOAP协议,主要核心是面向活动:两个都是通过web请求调用接口 RESTful是什么: 首先要了解什么是REST,R ...

  8. 使用Python解压zip、rar文件

    解压 zip 文件 基本解压操作 import zipfile ''' 基本格式:zipfile.ZipFile(filename[,mode[,compression[,allowZip64]]]) ...

  9. Flask 上传下载文件

    上传文件示例代码 #encoding:utf8 from werkzeug.utils import secure_filename from flask import Flask,render_te ...

  10. netty-websocket-spring-boot-starter不同url端口复用

    netty-websocket-spring-boot-starter是一个基于netty的websocket服务端,目前笔者使用的版本依托于Springboot.官方网址https://github ...