Freemarker 的配置

Freemarker是一种用于生成动态模板的Java模板引擎。它可以将数据与模板文件结合,生成最终的输出内容。以下是使用Freemarker的实现和配置步骤:

  1. 引入Freemarker库:首先需要将Freemarker库添加到项目的依赖中。可以通过在Maven或Gradle中添加相应的依赖,或手动将Freemarker的jar文件添加到项目中。

  2. 配置Freemarker:在项目的配置文件中,需要配置Freemarker的一些属性,如模板文件的位置、编码等。可以通过创建一个Freemarker的配置对象,然后设置相关的属性。

Configuration configuration = new Configuration(Configuration.VERSION_2_3_31);
configuration.setDirectoryForTemplateLoading(new File("path/to/templates"));
configuration.setDefaultEncoding("UTF-8");

这里的"path/to/templates"是模板文件所在的目录路径。

  1. 获取模板:在使用Freemarker之前,需要加载模板文件,可以通过配置的TemplateLoader对象来获取指定的模板。
Template template = configuration.getTemplate("template.ftl");

这里的"template.ftl"是模板文件的名称。

  1. 构造模板数据:将需要的数据封装成一个Java对象,可以是一个POJO(Plain Old Java Object)或者是一个Map对象。
Map<String, Object> data = new HashMap<>();
data.put("name", "John");
data.put("age", 30);

  1. 合并模板和数据:使用模板和数据进行合并,生成最终的输出内容。
Writer out = new OutputStreamWriter(System.out);
template.process(data, out);
out.flush();
out.close();

这里的template.process(data, out)方法会将模板和数据合并,并将结果输出到指定的Writer对象中。

以上是使用Freemarker的基本实现步骤。根据具体需求,还可以在模板中使用Freemarker的标签、指令等功能,对模板进行更加复杂的控制和处理。

在idea中配置freemarker

首先需要导入依赖

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!-- apache 对 java io 的封装工具库 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>
    </dependencies>

配置yml文件

server:
  port: 8881 #服务端口
spring:
  application:
    name: freemarker-demo #指定服务名
  freemarker:
    cache: false  #关闭模板缓存,方便测试
    settings:
      template_update_delay: 0 #检查模板更新延迟时间,设置为0表示立即检查,如果时间大于0会有缓存不方便进行模板测试
    suffix: .ftl               #指定Freemarker模板文件的后缀名

需要准备导入freemarker-stater然后进行模版配置

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Hello World!</title>
</head>
<body>
<b>普通文本 String 展示:</b><br><br>
Hello ${name} <br>
<hr>
<b>对象Student中的数据展示:</b><br/>
姓名:${stu.name}<br/>
年龄:${stu.age}
<hr>
</body>
</html>

然后进行controller的配置

@Controller
public class HelloController {

    @GetMapping("/basic")
    public String test(Model model) {


        //1.纯文本形式的参数
        model.addAttribute("name", "freemarker");
        //2.实体类相关的参数
        
        Student student = new Student();
        student.setName("小明");
        student.setAge(18);
        model.addAttribute("stu", student);

        return "01-basic";
    }
}

  • 20
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Freemarker 是一个Java模板引擎,用于生成动态内容,如HTML网页、电子邮件等。在使用Freemarker时,您需要进行一些配置。 首先,您需要将Freemarker的依赖项添加到您的项目中。您可以在 Maven 或 Gradle 中添加以下依赖项: Maven: ```xml <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.31</version> </dependency> ``` Gradle: ``` implementation 'org.freemarker:freemarker:2.3.31' ``` 接下来,您需要配置Freemarker的模板目录。这是您存放Freemarker模板文件的位置。您可以将此目录设置为项目的资源目录或任何其他目录。 在您的代码中,您需要配置Freemarker配置对象。您可以使用 `Configuration` 类来创建和配置它。以下是一个示例: ```java import freemarker.template.Configuration; import freemarker.template.TemplateExceptionHandler; public class FreeMarkerConfig { public static Configuration getConfig() { Configuration config = new Configuration(Configuration.VERSION_2_3_31); config.setClassForTemplateLoading(FreeMarkerConfig.class, "/templates"); config.setDefaultEncoding("UTF-8"); config.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); return config; } } ``` 在上面的示例中,我们设置了模板加载路径为 `/templates`,并将默认编码设置为 UTF-8。还可以根据需要进行其他配置,如缓存设置、编码设置等。 在您的代码中,您可以使用以下方式获取配置对象并进行模板处理: ```java Configuration config = FreeMarkerConfig.getConfig(); Template template = config.getTemplate("templateName.ftl"); // 构造模板数据 Map<String, Object> data = new HashMap<>(); data.put("name", "Freemarker"); // 处理模板并输出结果 Writer out = new OutputStreamWriter(System.out); template.process(data, out); out.flush(); ``` 这是一个简单的Freemarker配置示例,您可以根据具体需求进行更多的配置和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值