freemarker用过的基本的标签
仅供自己学习、参考
include、import
<#import "../common/spring.ftl" as spring />
<#include "header.ftl" parse=true encoding="utf-8">
-- 获取项目跟路径
<#assign ctx=request.contextPath/>
${ctx}
-- <#if> <#list> 里不需要用 $获取
-- <#assign bm = "${param}" >
用 $ 获取的参数一般 前后加 “”
要用数字 则可以转换 eg:<#assign bm = "${param}" ?number>
-- <#if> 比较大小
里面比较大小,eg:<#if (3>5)></#if>
-- 获取session
${Session["userSession"]?default("Session")}
获取session里 实体的值
${userSession.nickname}
-- 变量自定义值
<#assign hh="${userSession.roles}" >
判断 roles 包含3 <#if roles?contains("3")>
<#assign ctx=request.contextPath>
-- 获取 url 上带的参数如 [email protected]
${RequestParameters["msgEmail"]?default("")}
-- 获取request 传来的值 包括request.setAttribute("","")
<#if Request["shoppingCart"]?exists>
-- 判断数值存在与否
<#if Session["userSession"]?exists>
666
<#else>
777
</#if>
-- 获取绑定的key
model.addAttribute("oneOne",oneoneList);
页面获取 ${}获取即可
<#list oneOne as one>
-- 获取实体里的 自定义 集合属性
one 代表 实体,childList是自定义的一个集合
<#list one.childList() as child>
</#list
</#list
list<Category>
-- freemarker 数字输出中的逗号问题
model.put("t",i);
在freemarker中显示为100,000,000
想按原样输出时${t} 显示为100,000,000
${t?c} 显示为100000000
如果不加?c 默认情况下freemarker会将数字用逗号分隔
如何去掉","逗号呢.,加上"?c"就可以了。
-- 自定义list循环及终止
<#list [1,2,3] as x>
${x}
<#if x == 3>
<#break>
</#if>
</#list>
-- 获取国际化文件
引入spring.ftl
页面输出
<@spring.message "handle.reSubmit"/>
-- 国际化 动态传值
home.teaching.experience=${0}年工作经验
直接用如下:[ ] 必须要 且里面是字符串
${springMacroRequestContext.getMessage("home.teaching.experience",["9"])}
-- contains 包含用法
<#--声明一个序列,包含若干个元素-->
<#assign x = ["red", 16, "blue", "cyan"]>
如果不是map <#if roles?contains("3")>
<#--使用seq_contains判断序列中的元素是否存在-->
"blue": ${x?seq_contains("blue")?string("yes", "no")}
"yellow": ${x?seq_contains("yellow")?string("yes", "no")}
-- list标签遍历map:
<#list avertisementTypeMap?keys as key>
<option value="${key}">${avertisementTypeMap[key]}</option>
</#list>
-- 五星好评
<#assign avgScore=item.avgScore?default(0)>
<#list 1..5 as xx>
<#if (xx <= avgScore)><i class="fa fa-star"></i>
<#else>
<i class="fa fa-star-o"></i></#if>
</#list>
-- string 用于将数字转换为字符串
Freemarker 中预订义了三种数字格式:number,currency(货币)和percent(百分比)其中number为默 认的数字格式转换
例如:
<#assign tempNum=20>
${tempNum}
${tempNum? string .number}或${tempNum? string (“number”)} 结果为20
${tempNum? string .currency}或${tempNum? string (“currency”)} 结果为¥20.00
${tempNum? string . percent}或${tempNum? string (“percent”)} 结果为2,000%
-- 字符串转数字
<#assign test="${param}"?number>
${“60.60”?number} 结果为60.60
-- 日期 (后台传的是秒)
${item.createTime?string("yyyy-MM-dd HH:mm:ss")}
-- macro 自定义标签
自定义标签,其中 bm是自定义标签 param是参数 可以是多个参数
<#macro bm param>
this is ${param}
</#macro>
调用的时候:
<@bm param="90"/> 输出为:this is "90"