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"

相关推荐