写点什么

222

作者:乌龟哥哥
  • 2022-10-25
    上海
  • 本文字数:1128 字

    阅读完需:约 4 分钟

模版引擎对比说明

在 Java 里面常用的模版引擎有很多, 例如: jspFreemarkerThymeleaf等我们来对比一下各个模版引擎.


  • JSP(后端渲染,消耗性能) Java Server Pages 动态网页技术,由应用服务器中的JSP引擎来编译和执行,再将生成的整个页面返回给客户端,可以写java代码,持表达式语言(eljstl),内建函数,但是占用JVM内存。 是javaweb官方推荐, 但springboot不推荐


附上官方文档说明


https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-jsp-limitations
复制代码


  • FreemarkerFreeMarker Template Language(FTL) 文件一般保存为 xxx.ftl严格依赖MVC模式,不依赖Servlet容器(不占用 JVM 内存),内建函数

  • Thymeleaf (主推)轻量级的模板引擎(负责逻辑业务的不推荐,解析DOM或者XML会占用多的内存)可以直接在浏览器中打开且正确显示模板页面,直接是html结尾,直接编辑

整合 Freemarker

  • 增加依赖 pom.xml


<!-- 引入freemarker模板引擎的依赖 --><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-freemarker</artifactId></dependency>
复制代码


  • 配置 Freemarker application.properties


# 是否开启thymeleaf缓存,本地为false,生产建议为truespring.freemarker.cache=falsespring.freemarker.charset=UTF-8spring.freemarker.allow-request-override=falsespring.freemarker.check-template-location=true    #类型spring.freemarker.content-type=text/htmlspring.freemarker.expose-request-attributes=truespring.freemarker.expose-session-attributes=true    #文件后缀spring.freemarker.suffix=.ftl#路径spring.freemarker.template-loader-path=classpath:/templates/
复制代码


  • 编写路由 AopppController.java


@RequestMapping("/fm/index")    public String fmIndex(ModelMap modelMap) {
Map<String, String> map = new HashMap<>();
map.put("name", "aoppp"); map.put("desc", "描述");
// 添加属性 给模版 modelMap.addAttribute("user", map);
return "fm/index"; }
复制代码


  • 编写模版 templates/fm/index.ftl


<!doctype html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport"          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>Document</title></head><body>
<h1>dhsajdhkjks</h1><span>name ===</span><span> ${user.name} </span><span>desc ===</span><span> ${user.desc} </span></body>
复制代码


用户头像

乌龟哥哥

关注

正在努力寻找offer的大四小菜鸟 2021-03-16 加入

擅长 Hbuilder、VS Code、MyEclipse、AppServ、PS 等软件的安装与卸载 精通 Html、CSS、JavaScript、jQuery、Java 等单词的拼写 熟悉 Windows、Linux、 等系统的开关机 看–时间过得多快,不说了,去搬砖了

评论

发布
暂无评论
222_乌龟哥哥_InfoQ写作社区