首页 > 其他分享 >freemarker使用总结

freemarker使用总结

时间:2022-10-09 18:04:24浏览次数:48  
标签:总结 freemarker Freemarker 访问 key 使用 date 模板


目录

​为什么使用freemarker​

​简单的Freemarker测试​

​Freemarker语法​

​访问Map中的key​

​访问POJO中的属性​

​访问集合中的数据​

​if判断​

​日期​

​include​


为什么使用freemarker

当用户访问jsp的时候,jsp本质就是servlet,所以访问的时候会被翻译成java类,但是想html这种静态页面不用翻译直接访问速度就快

FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。

目前企业中:主要用Freemarker做静态页面或是页面展示

简单的Freemarker测试

新建一个web工程,完整的工程目录结构如下:

freemarker使用总结_数据

使用freemarker依赖

<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>

首先要创建ftl模板文件

在webapp目录下新建ftls文件夹(名称以及存放的位置任意)存放Freemarker的模板

创建hello.ftl模板文件,(freemarker对于拓展名是没有要求的。通常使用ftl作为扩展名)输入如下内容

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
</head>
<body>
测试:${hello}
</body>
</html>

其中的${hello}是Freemarker的语法标签。Freemarker会将这个标签替换为程序中指定的内容。

测试方法

freemarker使用总结_html_02

Freemarker语法

访问Map中的key

访问Map中的数据:

${key}

访问POJO中的属性

pojo中的属性:

${stu.id}-${stu.name}

其中stu是pojo对象对应的key:这个对象还是放在map中传递过去的

freemarker使用总结_空字符串_03

访问集合中的数据

<#list 集合 as 元素>

取集合中的数据
<#list studentList as student>
    下标:${student_index}
    集合中的元素:${student.id}/${student.name}
</#list>

freemarker使用总结_数据_04

if判断

<#if student_index % 2 == 0>
我是if
<#else>
我是else
</#if>

日期

${date?date} 2016-9-13
${date?time} 17:53:55
${date?datetime} 2016-9-13 17:53:55
${date?string("yyyy/MM/dd")}

其中date是属性名

dataModel.put("date",new Date

空值处理

如果模板中引用的key不存在,会报异常,用${key!}代表空字符串

处理: ${aaa!"默认值"}或者${aaa!}代表空字符串

include

一个ftl模板中可以引用另一个模板

<#include "hello.ftl">

());

标签:总结,freemarker,Freemarker,访问,key,使用,date,模板
From: https://blog.51cto.com/u_11334685/5740986

相关文章

  • Thmeleaf.pdf下载使用
    1、如何使用springboot整合2、书籍下载链接:​​https://pan.baidu.com/s/19y_1U3kBvh0r-Qn9ZS7mDg​​提取码:q7s23、常用总结a连接带参数请求的两种方式第一种:通过拼接字符......
  • jsp使用
    1.解决用户浏览器缓存问题,前台在jsp中使用request<%request.setCharacterEncoding("utf-8");request.setAttribute("path",request.getContextPath());request.setAtt......
  • Spring Boot + Thymeleaf 使用PageHelper实现分页
    一、概述使用分页插件来实现分页功能。好处是,分页条你可以自行排版,不受页面约束。(前端使用的是thymeleaf)我使用的是springboot2.1.11.RELEASE,如果按照以下步骤不能实现分......
  • eclipse使用总结
    目录 ​​1、下载安装​​​​2、常用快捷键​​​​3、编码设置​​​​4、项目导入​​​​5、注释文档导出​​​​6、java项目中引入jar文件和导出jar文件​​​​7、......
  • 权限类,频率类的使用及源码分析
    权限类的使用使用场景:用户登录后,某个接口只有管理员才能访问,普通用户不能访问例:出版社的所有接口必须登录并且士管理员才能访问使用步骤:一.写一个类,继承BasePermi......
  • 2022-2023-1 20221306《计算机基础与程序设计》第六周学习总结
    作业信息 班级链接:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK06作业目标:《计算机科学概论》......
  • SSTap 下载安装使用图文教程(网游)加速器
    简介SSTap全称SOCKSTap,是一款利用虚拟网卡技术在网络层实现的代理工具,SSTap能在网络层拦截所有连接并转发给SSR/SS,而无需对被代理的应用程序做任何修改或设置。它能同时......
  • 第一周实训总结
     2019.7.20 17:35  又是一个人坐在偌大的实验室,记得上次这样说还是上一个冬天。这次和上次不一样的的地方在于,没有觉得凄凉。(现在这个时间点,算是青岛一年之中最热的......
  • redis使用lua脚本
    Lua是什么:Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。为什么使用:(1)减少......
  • 使用docker-compose安装Prometheus
    Prometheus监控一、总览主要组件:Prometheusserver:用于收集和存储时间序列数据exporter:客户端生成监控指标Alertmanager:处理警报Grafana:数据可视化和输出Pushg......