freemarker语法
1.对url的判断 <a href="<#if url!=''&&((!url?contains('/#'))&&(!url?contains('#?')))>${url}<#else>javascript:;</#if>" class=""></a> 2.对基本类型的判断,只调用一次接口 这种写法也可以,等价于"=="但不推荐 <#if a = 0> a is 0 </#if> <#assign url = d_link.getUrl()!"null"> <#if url!="null" && ((!url?contains('/#')) && (!url?contains('#?')))></#if> 3.对引用类型的判断 <#if list?? && list?size > 0> <#assign books = list> ... </#if> 4.对类型的判断非空 <#if name!="">${name}</#if> 5.声明一个公共方法 <#macro methodName(parameter)> <div class="className"> <#assign name = parameter> <p>${name}</p> </div> </#macro> 调用方法 <#call methodName(parameter)> 注意: 方法圆括号里的参数param可以是任意类型,都可以接收 在调用其方法时,则按照传入参数类型进行传参,如果是变量则无影响 用例 <#macro test foo bar="Bar" baaz=-1> Test text, and the params: ${foo}, ${bar}, ${baaz} </#macro> <@test foo="a" bar="b" baaz=5*5-2/> <@test foo="a" bar="b"/> <@test foo="a" baaz=5*5-2/> <@test foo="a"/> 该语法是 test为方法名, foo为变量1(未赋值),bar="Bar"变量2(已赋值为String类型的Bar),baaz变量3(已赋值为number类型的-1) 调用该方法<@test 变量1赋值 变量2赋值 变量三赋值> 6.对于字符串中: <:< >:> <=:<e; >=:>e; &:& ":" ∨:∨ ’:′ 简版中的 用 代替 截取字符串:util.getSubString(String text,int lenth);text需要被截取的字符串,length是截取的长度 7.?语法 8.jsp的标签语法: 在freemarker中通常是以getName()类.方法()来获取 ${xxx.name?html}中是一种jsp的html文本输出EL表达式语法,但不推荐. ${xxx.name?html}等价于${xxx.getName()} 只适合最后输出为string,基本类型,引用类型会报错 9.index_of的判断 <#assign param1 = '123_a'> <#if param1?index_of('_') !=-1> param1有下划线 </#if> 10.m2M2为多加两位小数点 <span>#{buyTick;m2M2}</span>:";m2M2"为多加两位小数点语法是: "#{buyTick;m2M2}"注意大括号前面是# #{213.111111;m6}其中';m6'是保留小数点6位 11.语法:用来压缩空白空间和空白的行 <#compress> 。。。 。。。 </#compress> 输出 ... ... 12.字符串[index]语法 当一个String类型的"1234"只需要输出1和4时,可以这样写 <#assign str = "1234"> ${str[0]}${str[3]}输出14 ${str[1..3]}输出234 13.取得字符串语法 取得字符串长度 str?length 大写输出字符 str?upper_case 小写输出字符 str?lower_case 首字符大写 str?cap_first 首字符小写 str?uncap_first 去掉字符串前后空格 str?trim 每个单词的首字符大写 str?capitalize 14.freemarker的last_index_of语法 该语法与java的lastIndexOf('param')语法一致,从最后开始寻找要寻找的参数