freemarker用过的基本的标签

论坛 期权论坛 脚本     
匿名网站用户   2020-12-19 18:41   11   0

仅供自己学习、参考

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 上带的参数如 msgEmail=56464@qq.com

${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"

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP