前言:
今天姐妹们对“freemarker生成html”大概比较看重,小伙伴们都想要分析一些“freemarker生成html”的相关知识。那么小编也在网上网罗了一些对于“freemarker生成html””的相关资讯,希望各位老铁们能喜欢,大家一起来了解一下吧!主要特征:静态页面,无接口交互数据实时性不高且体量小的网站可采用生成静态html的形式数据提前渲染至html内,若发生数据更新,则重新渲染数据CDN加速让网站不再龟速1、引入Maven依赖
<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version></dependency>2、创建ftl
官网语法参考:freemarker.foofun.cn/
<html> <head> <title>啦啦啦啦啦</title> </head> <body> <h1>侠客行</h1> <p>${author!}</P> <#if (poem?size)!=0> <#list poem as item> <p>${item.first!}${item.second!}</p></br> </#list> </#if> </body></html>3、创建freeMarker工具类
@Slf4j@Componentpublic class FreeMarkerUtil { private static Configuration config; private static String serverPath; @Value("${spring.servlet.multipart.location:D:/static/}") public void setServerPath(String serverPath) { FreeMarkerUtil.serverPath = serverPath; }/*** 通过freemarker生成静态HTML页面* @param templateName 模版名称* @param targetFileName 生成后的文件名* @param ftlPath模板路径* @param htmlPathhtml路径* @param mapfreemarker生成的数据都存储在MAP中,*/public static void createHtml(String templateName, String targetFileName, String ftlPath, String htmlPath, Map<String, Object> map) { try{ //创建fm的配置 config = new Configuration(); //指定默认编码格式 config.setDefaultEncoding("UTF-8"); //设置模版文件的路径 config.setDirectoryForTemplateLoading(new File(serverPath+ftlPath)); //获得模版包 Template template = config.getTemplate(templateName); //从参数文件中获取指定输出路径 String path = serverPath+htmlPath; //生成的静态页存放路径如果不存在就创建 File file = null; file=new File(path); if (!file.exists()){ file.mkdirs(); } //定义输出流,注意必须指定编码 Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(path+"/"+targetFileName)), UTF_8)); //生成模版 template.process(map, writer); }catch (Exception e){ log.error("生成异常:{}",e); }}4、编写Java的代码
构造实体类,通过freemarker将实体类的信息渲染至html
@GetMapping("test")public Object test() { Map<String,Object> map = new HashMap<>(16); List<Poem> list = new ArrayList<>(); list.add(new Poem("赵客缦胡缨,", "吴钩霜雪明。")); list.add(new Poem("银鞍照白马,", "飒沓如流星。")); list.add(new Poem("十步杀一人,", "千里不留行。")); list.add(new Poem("事了拂衣去,", "深藏身与名。")); map.put("author","李白"); map.put("poem",list); FreeMarkerUtil.createHtml("poem.ftl","poem.html","侠客行/","侠客行/",map); return BackMessage.ok(map);}
实体类
@Datapublic class Poem { private String first; private String second; public Poem(String first, String second) { this.first = first; this.second = second; }}5、Html输出
<html><head> <title>啦啦啦啦啦</title></head><body> <h1>侠客行</h1> <p>李白</P> <p>赵客缦胡缨,吴钩霜雪明。</p></br> <p>银鞍照白马,飒沓如流星。</p></br> <p>十步杀一人,千里不留行。</p></br> <p>事了拂衣去,深藏身与名。</p></br></body></html>
作者:七号im
链接:
来源:稀土掘金
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #freemarker生成html