引入依赖
<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; } }