springboot集成freemarker将模板填充数据并转换成字符串


引入依赖

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

创建模板

由于springboot会自动加载templates下面的资源文件,因此模板文件可以放在templates下面:

 

模板内容:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>发送邮件</title>
    </head>
    <body>
        <#list users as user>
            <p>姓名:${user.userName}</p>
            <p>年龄:${user.userAge}</p>
        </#list>
    </body>
</html>

测试代码

单元测试:

@SpringBootTest
class TemplateEnginDemoApplicationTests {

    @Autowired
    private FreeMarkerConfigurer configurer;
    
    @Test
    public void testMail() throws IOException, TemplateException {
        List<User> users = new ArrayList<>();
        User user = new User();
        user.setUserName("张三");
        user.setUserAge(23);
        users.add(user);
        user = new User();
        user.setUserName("李四");
        user.setUserAge(30);
        users.add(user);
        Map<String,Object> map = new HashMap<>();
        map.put("users",users);
        Template template = configurer.getConfiguration().getTemplate("emailTemplate.html");
        String resStr = FreeMarkerTemplateUtils.processTemplateIntoString(template, map);
        System.out.println(resStr);
    }
}

User.java

/**
 * @author lipeiguang
 * @description 用户
 * @date 2020/10/2 14:54
 **/
public class User {
    private String userName;
    private int userAge;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public int getUserAge() {
        return userAge;
    }

    public void setUserAge(int userAge) {
        this.userAge = userAge;
    }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM