首页 技术 正文
技术 2022年11月11日
0 收藏 859 点赞 2,505 浏览 1911 个字

  手册写的不错,忘记的时候可以翻翻n(*≧▽≦*)n

——————————————–分割线——————————————–

  1.插值–通用

 <div>${expr}</div>

  2.插值结合运算符

    为了处理缺失变量,FreeMarker提供了两个运算符: (用于防止对象不存在而导致的异常报错 )

    ! : 指定缺失变量的默认值

    ?? : 判断某个变量是否存在,返回boolean值

    比如:

 <#if item??>
<div>${item}</div>
</#if>

    又或者:

     <#if (item.name)??>
<div>${item.name!'admin'}</div>
</#if>

    特别提示:

     <#if (item.name)??></#if> 与 <#if item.name??></#if>是不一样的哦,前者判断item和name是否为空,而后者指判断name是否为空!

  3.内置函数   

      html :字符串中所有的特殊 HTML 字符都需要用实体引用来代替(比如 < 代替 &lt; )
      trim :去掉字符串前后的空白字符
      size : 序列(seqlist)中元素的个数
      string :指定格式,常用日期
      例子:

 ${item.date?string('yyyy-MM-dd HH:mm:ss')} //日期格式
${item?string.number} //数字格式
${item.money!?string("0.00")} 元 //金钱格式

      ?html 用于将字符串中可能包含的html字符,进行过滤.

  4.对象的使用  

    obj.Map()
    使用{}包住,以成对的键值存在;
    可以混合使用.和[“”],例如item.stu[‘name’];

  5.逻辑判断   

    <#if condition>…    

    <#elseif condition2>…
    <#else>…

  6.列表循环

     <#list items as item>
${item}
</#list>

    item_index为当前变量的索引值,从0开始
    item_has_next是否存在下一个对象(来辨别当前项是否是序列的最后一项的布尔值)

    手册示例:

 <#assign seqlist=["spring","summer","autumn","winner"]>;
<#list seqlist as item>
${item_index + 1}.${item} <#if item_has_next>,</#if>
</#list>

    结果是按数组顺序输出!

  7.assign指令创建

    <#assign num=1 > (创建变量num)
    <#assign num=num+1 > (替换变量num)
    可以在任何地方使用访问

  8.空值(或不存在)变量的判断    

    <#if item.name??></#if> (询问变量是否存在)
    ${user!”Anonymous”} 或者 ${user!}(指定默认)

    特别注意几点:
    FreeMarker模板语言没有null关键字,所以不能判断变量是否为Null;
    FreeMarker 不能容忍引用不存在的变量,除非明确地告诉它当变量不存在时如何处理;
    不存在的变量和一个值为null的变量,是一样的。

  9.特殊字符

         \r 回车
\n 换行
\" 双引号
\' 单引号
\t Tab
\b 退格键
\\ 反斜杠
注意**
> gt
>= gte
< lt
<= lte

  10.include 导入其他页面

<#include "../header.html" />

    插入另外一个指定路径的 FreeMarker 模板文件,输出格式是在include标签出现的地方插入;

    区分:

<@include_page path="../header.html"/> 

      会开始一个独立的 HTTP 请求处理,一般不用;

    JSP写法:

<jsp:include page="path/to/some.jsp"> 

——————————————–分割线——————————————–
上面总结的都是我平时用到的一些指令语法等内容,其他没有用到的我就暂时没有放上来,以后会继续补充哒n(*≧▽≦*)n!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,991
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,505
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,349
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,134
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,766
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,844