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