Freemarker静态化Demo(两种方式)

Freemarker

Demo

使用单元测试,集成springboot开发

  1. 在test下创建resources目录,在固定文件夹(template)在创建模板文件
    Freemarker静态化Demo(两种方式)_第1张图片

  2. 添加依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-freemarkerartifactId>
        dependency>
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
        dependency>
        <dependency>
            <groupId>com.squareup.okhttp3groupId>
            <artifactId>okhttpartifactId>
        dependency>
        <dependency>
            <groupId>commons-iogroupId>
            <artifactId>commons-ioartifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
    dependencies>
    
  3. 编写操作类

    /**
     * 模板测试类
     */
    @SpringBootTest
    @RunWith(SpringRunner.class)
    public class FreemarkerTest {
    
        /**
         * 根据模板文件生成html文件
         */
        @Test
        public void getHtmlByFile() throws IOException, TemplateException {
            //创建配置类
            Configuration configuration = new Configuration(Configuration.getVersion());
            //设置模板路径
            String path = this.getClass().getResource("/").getPath();
            configuration.setDirectoryForTemplateLoading(new File(path+"/templates/"));
            //加载模板
            Template template = configuration.getTemplate("test1.ftl");
            //数据模型
            Map<String,Object> map = new HashMap<>();
            map.put("name","黑马程序员");
            //静态化
            String templateString = FreeMarkerTemplateUtils.processTemplateIntoString(template, map);
            //输出文件到指定目录
            //System.out.println(templateString);
            InputStream is = IOUtils.toInputStream(templateString);
            FileOutputStream os = new FileOutputStream(new File("f:/test1.html"));
            IOUtils.copy(is, os);
            os.close();
            is.close();
        }
    
        /**
         * 根据模板字符串生成html文件
         */
        @Test
        public void getHtmlByString() throws IOException, TemplateException {
            //创建配置类
            Configuration configuration = new Configuration(Configuration.getVersion());
            //设置模板字符串
            String  templateString=""  +
                "\n"  +
                "        \n"  +
                "        \n"  +
                "        名称:${name}\n"  +
                "        \n"  +
                "";
            //模板加载器获取模板
            StringTemplateLoader loader = new StringTemplateLoader();
            loader.putTemplate("template",templateString);
            configuration.setTemplateLoader(loader);
            //获取模板
            Template template = configuration.getTemplate("template");
            //数据模型
            Map<String,Object> map = new HashMap<>();
            map.put("name","黑马程序员");
            //静态化
            String content = FreeMarkerTemplateUtils.processTemplateIntoString(template, map);
            //输出文件到指定目录
            //System.out.println(content);
            InputStream is = IOUtils.toInputStream(content);
            FileOutputStream os = new FileOutputStream(new File("f:/test1.html"));
            IOUtils.copy(is, os);
            os.close();
            is.close();
        }
    }
    

你可能感兴趣的:(Freemarker网页静态化)