Freemarker模版技术

一.初识Freemarker

什么是Freemarker

Freemarker是一款模版引擎
Freemarker不是web框架
Freemarker官网http://http://freemarker.org
动态网页(数据可变)与静态网页(访问快,SEO排名高)
动态网页静态代(伪静态[只改后缀],真静态)
模板技术:数据+模板=输入文本
freemarker【ftl】,velocity【vm】

实例

使用freemarker的步骤
1.导包(freemarker是一个小框架)
2.创建一个配置对象Configuration(加个版本)
3.设置加载路径
4.设置字符集(默认)
5.创建模板(准备一个ftl模板)
6.准备数据(Map,对象)
7.数据+模板=输出文件(Writer)
----------------------------
----------------------------
动态网页静态化(添加,修改)
修改的时候需要把原生的那个静态化页面删除
删除数据的时候也要把静态化页面删除
需要把路径记录下来,才可能去找到这个静态化页面

主要代码

@RequestMapping("/save")
	public String save(Jobs job, HttpServletRequest req) throws IllegalStateException, IOException, TemplateException {
		// 页面存在则删除
		String realPath = req.getServletContext().getRealPath("/statichtml");
		String htmlurl = job.getHtmlurl();
		if (htmlurl != null) {
			File jobFile = new File(realPath, htmlurl);
			// 判断是否存在
			if (jobFile.exists()) {
				System.gc();
				jobFile.delete();
			}
		}
		Configuration cfg = new Configuration(Configuration.VERSION_2_3_28);

		cfg.setDirectoryForTemplateLoading(new File(realPath));
		cfg.setDefaultEncoding("UTF-8");
		Template template = cfg.getTemplate("details.ftl");
		HashMap map = new HashMap();
		String uuidHtml = UUID.randomUUID().toString() + ".html";
		map.put("job", job);
		System.out.println(job.getRequired());
		job.setHtmlurl(uuidHtml);
		File newFile = new File(realPath, uuidHtml);
		FileWriter out = new FileWriter(newFile);
		template.process(map, out);
		out.flush();
		out.close();

		if (job.getId() != null) {
			service.update(job);
		} else {
			service.save(job);
		}
		return "redirect:/jobs/query";

	}

webapp下创建一个statichtml包
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值