freemarker

9 篇文章 0 订阅

网页静态化的目的:
减轻关系型数据库的访问压力,网站能够支撑更大的并发访问量
便于网站的seo(搜索引擎优化),因为静态的资源更容易被百度爬虫爬取,从而排名靠前
网站就可以部署在Nginx服务器里面了(单机能支持上万的并发)

freemarker是一款模板引擎,基于模板和要改变的数据来输出生成文本(html,js,xml,或者源码等)的通用工具,不是面向最终用户的,而是一个类库,是一款可以嵌入开发产品的组件

freemarker使用java语言编写的模板引擎
使用步骤:
1.导入freemarker的jar包
2.准备模板(xxx.ftl) ftl就是freemarker template language的缩写,freemarker模板语言
3.准备数据
4.调用freemarker的引擎生成模板

freemarker模板由四部分构成
1.文本 原样输出
2.注释 不会输出
3.插值 替换后输出
4.指令 不会输出

//创建freemarker模板引擎的配置对象
Configuration configuration=new Configuration();
//设置编码格式
configuration.setDefaultEncoding(“UTF-8”);
//设置模板的加载目录
configuration.setDirectoryForTemplateLoading(new File(“D:\java资料18年\视频(品优购)\品优购(IDEA版)\笔记\day09\day09\代码\pyg_demo\freemarker_demo\src\main\resources”));
//获取具体的模板
Template template = configuration.getTemplate(“test.ftl”);
//创建数据
Map dataMap=new HashMap();
dataMap.put(“name”,“小可爱”);
dataMap.put(“message”,“欢迎访问本网站”);
//生成页面
Writer out=new FileWriter(“D:/freemarker/test.html”);
template.process(dataMap,out);
//关闭流
out.close();

freemarker的常用指令
<#assign a=‘aaa’> <#assign a={name:‘张三’,age:18}>定义变量
<#include >引入别的模板
<#list categoryList as category> 遍历 前面是要遍历的对象 as 后面是对象里面的内容
<#if > <#else> 进行if else的判断

freemarker的四个内建函数
?size可以获取集合内元素的个数
?eval可以将json字符串转换为对象
?date ?time ?datatime ?string(yyyy-MM-dd模板) 可以显示日期
?c 可以使数据正常显示 数据默认是每三位加一个逗号
变量?? 变量存在返回TRUE 不存在返回false 可以结合if else使用
变量!"" 变量不存在则显示空串 后面的内容可以替换

freemarker里面支持
算数运算符(±*/%)
逻辑运算符(&& || !)
比较运算符(> < = >= <= !=>>) 但是比较运算符的> <号和标签的括号会产生歧义,可以放在()内优先执行 也可用gt lt gte lte == =都代表等于

templateLoaderPath freemarker在spring中配置的时候,里面的path属性的值是从项目下开始的

商品详情页可以直接生成到page-web模块中,但是需要引入跨服务器传输的jar包,另外tomcat的web.xml文件中需要增加一个初始化参数 只读修改为false,因为默认是不允许往服务器写入的,会报403被禁止异常
在freemarker输出的时候会出现乱码的情况,那是因为输出流默认的情况下使用的是容器的编码即iso-8859-1 ,我们需要给流设置编码为UTF-8(流或者是getbytes的时候)

在js中一样是==代表相等 =代表赋值
class等非事件的属性中直接写angularjs的方法是无法触发的,需要用{{}}来触发方法.另外freemarker插值被翻译过来后就是个纯文本,如果作为一个字符串的参数传递的话,需要手动加上引号

前端页面如果多个变量都引用自同一个变量,那么如果过程中涉及变化的操作,需要进行深克隆,如果仅仅是查询时不需要的,因为换指向也不会影响对象的变化,不换指向操作会使对象的内容变化

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值