freemarker

前提:将数据封装到map中,每个元素可以是个对象,有属性,有关联的对象

properties 为准备好的Map对象集合,


注意:freeMarker控制较严格,数据如果为null会报错。


== 常用方法

${ package }                    packge为变量,为map的key,${}后可以直接显示内容;
${.now}                            当前时间

className=dept
${ className?cap_first }      首字母大写
${ className?uncap_first }        首字母小写
                        全小写
<#if (list.title?length>15)>    字符串长度

${ package?replace(".","/") }    替换


== html

html 用于将字符串中的<、>、&和“替换为对应得&lt;&gt;&quot:&amp

== 特殊字符替换

$        ${'$'}
#        ${'#'}

== FreeMarker不会自动进行类型的转换
 
常见的转换:
 
String -> int            ?eval
int  -> String           ?c


== for循环
properties 为准备好的Map对象集合,
表结构-----------------元数据(MetaData)
<#list properties as pro>  
    private  ${pro.proType} ${pro.proName};            <#if pro.proComment != "">//${pro.proComment}</#if>
</#list>

== 定义变量,显示变量

    <#assign x=pro.proName?index_of("createBy")>
    ${x}
    
    布尔类型转换为字符串显示
    <#assign x=pro.primary?string('yes', 'no')>
    ${x}
    
==布尔判断
    <#if pro.primary>
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    </#if>
    <#if pro.primary?string('yes', 'no')=="no">
    <#if "createBy,createDept,createTime,updateBy,updateTime"?index_of(pro.proName) == -1>
    public ${pro.proType} get${pro.proName?cap_first}() {
        return this.${pro.proName};
    }
    public void set${pro.proName?cap_first}(${pro.proType} ${pro.proName}) {
        this.${pro.proName} = ${pro.proName};
    }    
    </#if>
    </#if>

==判断空串

<#if pro.proComment != "">//${pro.proComment}</#if>


1. 判断对象是否存在(null)

经常会用到,如果对象 != null 则xxxx,在freemarker中表达比较奇怪,例如判断 target 是否为null,如果不为 nll 则做xxx动作

<#if target??>
    xxxx
</#if>
 
(目标变量后面连续两个??)
 

2. 字符串或数字比较
 
java里标准字符串比较需要 .equals() 方法,在freemarkder中进行了简化,字符串的比较方法和数字做到完全一样
 
<#if str == "success">
    xxx
</#if>

<#if str !== "error">
    xxx
</#if>

    
==判断是否包含子串:

pro.proName为子串

<#if "CreateBy,CreateDept,CreateTime"?index_of(pro.proName)==-1>


== 高级应用:宏

业务:实现每个文件引入版本

CopyRight.ftl
<#macro CopyRight> 
/**
 * @Description:    ${ className }Service接口
 * @Author:            
 * @Company:        
 * @CreateDate:        ${.now}
 */
 </#macro>

调用:

<#import "CopyRight.ftl" as my>
<@my.CopyRight/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值