Java -- springboot 配置 freemarker

Posted liyanyan665

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java -- springboot 配置 freemarker相关的知识,希望对你有一定的参考价值。

1、添加依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
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 文件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
$name
</body>
</html>
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<String, ?> 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;


/**
* 配置模板文件位置
* @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<String, Object> model, String saveFile)
try
FileWriter out = new FileWriter(new File(saveFile));
template.process(model, out);
catch (Exception e)
e.printStackTrace(http://www.amjmh.com);




6、注意事项

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

以上是关于Java -- springboot 配置 freemarker的主要内容,如果未能解决你的问题,请参考以下文章

Java教程:SpringBoot常用配置

Java 微服务 day02 源代码 SpringBoot 属性注入 自动配置

[Java]SpringBoot配置参数

java框架之Spring boot二:SpringBoot配置获取

java框架之Spring boot二:SpringBoot配置获取

springboot通过java代码获取配置参数