SpringBoot如何用java生成静态html
更新时间:2022年06月29日 14:09:19 作者: 七号im
这篇文章主要介绍了SpringBoot如何用java生成静态html,文章围绕主题展开详细的内容介绍,需要的朋友可以参考一下
SpringBoot集成Freemarker
- 主要特征:静态页面,无接口交互
- 数据实时性不高且体量小的网站可采用生成静态html的形式
- 数据提前渲染至html内,若发生数据更新,则重新渲染数据
- CDN加速让网站不再龟速
1. 引入Maven依赖
<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version> </dependency>
2. 创建ftl
<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 @Component public 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); }
实体类:
@Data public 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>
到此这篇关于SpringBoot如何用java生成静态html的文章就介绍到这了,更多相关java生成静态html内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解Spring Cloud Stream使用延迟消息实现定时任务(RabbitMQ)
这篇文章主要介绍了详解Spring Cloud Stream使用延迟消息实现定时任务(RabbitMQ),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-01-01Java动态线程池插件dynamic-tp集成zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等2023-03-03IntelliJ IDEA 小技巧之Bookmark(书签)的使用
这篇文章主要介绍了IntelliJ IDEA 小技巧之Bookmark(书签)的使用,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07浅谈Spring Cloud zuul http请求转发原理
这篇文章主要介绍了浅谈Spring Cloud zuul http请求转发原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-08-08Springboot+rabbitmq实现延时队列的两种方式
这篇文章主要介绍了Springboot+rabbitmq实现延时队列的两种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-05-05SpringBoot基于redis自定义注解实现后端接口防重复提交校验
本文主要介绍了SpringBoot基于redis自定义注解实现后端接口防重复提交校验,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-01-01
最新评论