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>
<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
- freeMarker简单小总结
- freemarker简单小例子
- Freemarker简单总结
- FreeMarker的一些小总结
- springMVC3.2+Hibernate4+freemarker入门简单小例子,适合初学者
- Freemarker总结
- freemarker 总结
- Freemarker总结
- Freemarker总结
- freemarker总结
- freemarker总结
- php的简单小总结
- freemarker小例子
- Freemarker 小技巧
- FreeMarker的简单应用
- FreeMarker简单入门
- Freemarker简单实例
- freemarker简单的例子
- ie浏览器下载rar文件,变成do文件
- Why do I keep getting 'SVN: Working Copy XXXX locked; try performing 'cleanup'?
- 从源码来分析ThreadLocal、Message、Handler、Looper、MessageQueue
- 算法导论 16-1.1活动选择问题 动态规划解
- 自定义一个背景可以滚动的tab栏
- freeMarker简单小总结
- python处理json
- 后台如何拼接easyUI tree格式的 json数据 构建动态树
- 相似性︱python+opencv实现pHash算法+hamming距离(simhash)(三)
- 无题
- poj 1178 Camelot(floyed+动规)
- Linux中修改网卡名字&修改IP地址报错
- MTK Android Driver:UART
- [学习笔记]JavaScript[1]