Java 模板引擎主流,freemaker ,thymeleaf (技术的介绍,重要是理解)(学成在线day04)

本文介绍了Spring Boot中如何使用Freemarker和Thymeleaf两个模板引擎进行页面静态化。讲解了Freemarker的配置、测试流程,以及Thymeleaf在个人博客中的应用。通过比较,强调了两者静态化过程的相似性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring  boot  使用两个模板引擎

一 freemaker (来自学成在线第四天的页面静态化)

静态化之后上传到 gridFs 服务器上

目录如下

1.配置文件

application.yml

resources下templates 下 index_banner.ftl 模板页面

2.在test测试下写一个测试类   GridFsTest

@SpringBootTest
@RunWith(SpringRunner.class)
public class GridFsTest {

    @Autowired
    GridFsTemplate gridFsTemplate;

    @Autowired
    GridFSBucket gridFSBucket;

    //存文件
    @Test
    public void testStore() throws FileNotFoundException {
        //定义file
        File file =new File("d:/index_banner.ftl");
        //定义fileInputStream
        FileInputStream fileInputStream = new FileInputStream(file);
        ObjectId objectId = gridFsTemplate.store(fileInputStream, "index_banner.ftl");
        System.out.println(objectId);
    }

    //取文件
    @Test
    public void queryFile() throws IOException {
        //根据文件id查询文件
        GridFSFile gridFSFile = gridFsTemplate.findOne(Query.query(Criteria.where("_id").is("5ce799bf840d5e6d88a0a0f7")));

        //打开一个下载流对象
        GridFSDownloadStream gridFSDownloadStream = gridFSBucket.openDownloadStream(gridFSFile.getObjectId());
        //创建GridFsResource对象,获取流
        GridFsResource gridFsResource = new GridFsResource(gridFSFile,gridFSDownloadStream);
        //从流中取数据
        String content = IOUtils.toString(gridFsResource.getInputStream(), "utf-8");
        System.out.println(content);

    }

}

详细解析页面静态化的流程实质是什么。。。。。。。。。。。。。。。。。。。。

 

 

 

 

二thymeleaf 

   自己写的博客,使用的就是这个技术,但是看着有点麻烦,以后查看博客的时候再看使用

使用spring  框架使用freemaker 

freemaker

(来自平优购的day12 的 商品详情页)感觉跟上面的spring boot集成的模式是一模一样的呀

最基础的配置文件,以及代码

1.3.3生成文件
使用步骤:
第一步:创建一个 Configuration 对象,直接 new 一个对象。构造方法的参数就是 freemarker的版本号。
第二步:设置模板文件所在的路径。
第三步:设置模板文件使用的字符集。一般就是 utf-8.
第四步:加载一个模板,创建一个模板对象。
第五步:创建一个模板使用的数据集,可以是 pojo 也可以是 map。一般是 Map。
第六步:创建一个 Writer 对象,一般创建一 FileWriter 对象,指定生成的文件名。
第七步:调用模板对象的 process 方法输出文件。
第八步:关闭流
=========================================================================================
代码:
创建Test类 main方法如下:
	     //1.创建配置类
		Configuration configuration=new Configuration(Configuration.getVersion());
		//2.设置模板所在的目录 
		configuration.setDirectoryForTemplateLoading(new File("D:/pinyougou_work/freemarkerDemo/src/main/resources/"));
		//3.设置字符集
		configuration.setDefaultEncoding("utf-8");
		//4.加载模板
		Template template = configuration.getTemplate("test.ftl");
		//5.创建数据模型
		Map map=new HashMap();
		map.put("name", "张三 ");
		map.put("message", "欢迎来到神奇的品优购世界!");
		//6.创建Writer对象
		Writer out =new FileWriter(new File("d:\\test.html"));
		//7.输出
		template.process(map, out);
		//8.关闭Writer对象
		out.close();

执行后,在D盘根目录即可看到生成的test.html ,打开看看

其实静态化的流程都是一样的,

只是在第四步的时候,是注入 模板对象@Autotuy  ReTemplate  reTemplate,

第五步的时候是注入其他的依赖   获取页面详情页所需要的数据  然后  数据+模板引擎=新的页面哟

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值