freeMarker简单小总结

来源:互联网 发布:ld3320语音识别算法 编辑:程序博客网 时间:2024/05/21 19:29
<#import "inner.ftl" as inner />
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>

</head>
<body>
<#--good从后台获取-->
${good}<br>

<br>--------------------1.关于null------------------------------------<br>
<#--1.关于null-->
<#--freemarker中出现null值(空字符串没事),属性名写错,这两种情况会报错"is undefinded",在后面加!号可避免报错,!后写显示的内容-->
<#--如果使用对象导航,!只会判断最后一个是否为空,如果到导航中的某个对象为空依然会报错,所以在导航中最好使用括号把要判断的都概括起来-->
${good.gnames!}<br><#--正确-->    
${good.gnames!'没有'}<br>    <#--正确-->
${good.gnames!11}<br><#--正确 -->
${(good.gnames.ddd)!}<br><#--全括起来,gnames为null也不会报错'is undefined' -->

<br>---------------------2.关于??-----------------------------------<br>
<#--2.关于?? 判断对象不是否有值,返回值为 布尔类型,不可通过${}在页面输出,可做为判断条件-->
<#--页面只可以输出3中类型:string, date , number-->
<#-- ${(a.b)??} 这么写会报错:Expecting a string, date or number here, Expression (a.b)?? is instead.....-->
${(good.gname)???string}<br><#--这么写可以输出'true'或'false' !!注意string s不可以大写-->

<br>---------------------3.关于if语句-----------------------------------<br>
<#--3.关于if语句 ,if判断的条件,不需要用${}-->
<#if (a.b)??>
    ${(a.b)???string}为空;
<#elseif !(a.b)??>
    ${(a.b)???string}取反不为空;
<#else>
    判断错误;
</#if>

<br>---------------------4.关于自定义指令#macro-----------------------------------<br>
<#--4.关于自定义指令#macro 调用自定义指令@test-->
<#--第一个参数是指令名称 后面是参数列表,参数之间用,或空格隔开-->
<#--调用时传入参数名称要么全写 要么都不写,(参数列表中的默认值可以不写,写了默认值就被赋值为传入的值)-->
<#macro test a b c d=4>
    ${a}-${b}-${c}-${d}
</#macro>
<@test 1 2 3 5></@test><br>
<@test a=1 b=2 c=3></@test><br>

<#--<#nested>可以调用自定义指令中的内容-->
<#macro test1 num=3>
    <#list 1..num as n>
        <#nested n/>
    </#list>

</#macro>
<@test1;n><#--;n可以调用自定义指令中的参数-->
    ${n}<input type="button" value="按钮">
</@test1 >

<#--#assign定义的是全局变量,#local只能用在macro中,定义的是局部变量-->
<#assign e='哈哈0'>
<#macro test2 >
    <#local e='哈哈1'>
    <#assign e='哈哈2'>
    ${e}<br><#--这里显示local定义的局部变量的 值-->
</#macro>
<@test2/>
${e}<br><#--这里显示assign定义的局部变量的 值-->


<@inner.qqq/>




<br>---------------------------------------------------------<br>
<#--if list 语句后直接写对象名称,不需要写${},但是方法体内需要写${}-->

<#list goodList as good >
    -${good.gname}-<br>
</#list>

<#if good.gid gt 1>
    ${good.gid}大于1;
<#elseif good.gid gt -1>
    ${good.gid}大于-1;
<#else>
    ${good.gid}大于-2;
</#if>


<#macro select id,name>
    <select id="${id}" name="${name}">
        <#list goodList as good>
            <option value="${good.gid}">${good.gname}</option>
        </#list>
    </select>
</#macro>
<@select id="1" name="one">
</@>





</body>
    
</html>
0 0
原创粉丝点击