网页静态化解决方案-商品详情页

一、掌握FreeMarker常用的指令与内建函数(入门demo)

1.1 网页静态化

  使用这种技术来提前生成一些静态网页,来减少对数据库的访问压力。

1.2 DEMO

引入依赖

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

创建模板文件
  它得依据模板来生成页面。这个模板就相当于月饼的模子,这一个模子可以产生很多很多的月饼,那么这一个模板也可以生成很多页面。
  新建一个文件test.ftl,其实不一定非得是ftl结尾,任意一个文件名都可以。

模板文件中四种元素
  文本:能够直接输出的内容
  注释:<#–…-->格式不会输出
  插值:即${}部分,将使用数据模型中的部分代替输出。
  FTL指令:和HTML标记类似,名字前面加#予以区分,不会输出。指令有很多,每个指令都可以完成一件事,比如说循环,判断。

<html>
	<head>
		<title>demo</title>
		<meta charset="utf-8">
	</head>
	<body>
		<#--我是一个注释,不会输出-->
		<!--html注释-->
		${name},你好。${message}
	</body>
</html>
public class Test {
	public static void main(String[] args) throws IOException, TemplateException {
		// 1.创建配置对象
		Configuration configuration = new Configuration(
			Configuration.getVersion());
		// 2.设置模板所在的目录(绝对路径)
		configuration.setDirectoryForTemplateLoading(
			new File("D:\\workspace17\\freemarkerDemo\\src\\main\\resources"));
		// 3.设置字符集
		configuration.setDefaultEncoding("UTF-8");
		// 4.获取模板对象
		Template template = configuration.getTemplate("test.ftl");
		// 5.创建数据模型(可以是对象,也可以是Map)
		Map map = new HashMap();
		map.put("name", "孙悟空");
		map.put("message", "欢迎来到神奇的天空之城!");
		// 6.创建一个输出流对象
		Writer out = new FileWriter("F:\\pinyougou\\test.html");
		// 7.输出
		template.process(map, out);
		// 8.关闭out对象
		out.close();
	}
}

生成静态页面

<html>
	<head>
		<title>demo</title>
		<meta charset="utf-8">
	</head>
	<body>
				<!--html注释-->
		孙悟空,你好。欢迎来到神奇的天空之城!
	</body>
</html>

运行截图
asd

1.3 FTL指令

assign指令:用于定义一个变量
include指令:用于模板文件的嵌套
if指令、elseif指令、else指令:在freemarker里=和==是一样的。
list指令:显示一个列表信息

1.4 内建函数

内建函数语法格式:变量+?+函数名称。

获取集合大小
 ${goodsList?size}
将JSON字符串转换为对象
 <#assign data=text?eval>
日期格式化
 date,time,datetime,string(“yyyy年MM月dd日”)
数字格式化
 c
空值处理
 判断某变量是否存在:??
 某变量不存在时的默认值:${bbb!‘默认值’}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值