JFinal用freemarker取值Map后,判断值是否等于aaa
博客专区 > 夜辰 的博客 > 博客详情
JFinal用freemarker取值Map后,判断值是否等于aaa
夜辰 发表于3年前
JFinal用freemarker取值Map后,判断值是否等于aaa
  • 发表于 3年前
  • 阅读 1915
  • 收藏 1
  • 点赞 1
  • 评论 2

新睿云服务器60天免费使用,快来体验!>>>   

摘要: JFinal用freemarker取值Map后,判断值是否等于aaa

用freemarker取出map值后,判断该值是否等于某一字符串,可以使用内建函数?string来进行判断。

实际代码:Data 是一个Record对象【JFinal的,其实可以理解为一个Map】。Data.get(key)根据map的key取出value对应的值。

 <ConditionData>
  <#list datas as Data>
   <Condition>
    <#list Data.getColumnNames() as key> 
     <${key}>
      <#if Data.get(key)?exists><#if Data.get(key)?string !="null">${Data.get(key)}</#if></#if>
     </${key}> 
    </#list>
   </Condition>
  </#list>
 </ConditionData>


内建函数?string其他参考:http://www.blogjava.net/libin2722/articles/229263.html。片段如下

插入字符串值:直接输出表达式结果

插入数字值:根据缺省格式(由#setting指令设置)将表达式结果转换成文本输出;可以使用内建函数string格式化单个Interpolation,下面是一个例子:

<#setting number_format="currency"/>
<#assign answer=42/>
${answer}
${answer?string}  <#-- the same as ${answer} -->
${answer?string.number}
${answer?string.currency}
${answer?string.percent}

输出结果是:

$42.00
$42.00
42
$42.00
4,200%

插入日期值:根据缺省格式(由#setting指令设置)将表达式结果转换成文本输出;可以使用内建函数string格式化单个Interpolation,下面是一个使用格式模式的例子:

${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")}
${lastUpdated?string("EEE, MMM d, ''yy")}
${lastUpdated?string("EEEE, MMMM dd, yyyy, hh:mm:ss a '('zzz')'")}

输出的结果类似下面的格式:

2003-04-08 21:24:44 Pacific Daylight Time
Tue, Apr 8, '03
Tuesday, April 08, 2003, 09:24:44 PM (PDT)

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 9
博文 24
码字总数 7441
评论 (2)
JFinal
判断一个变量是否存在,可以直接用两个问号,也即 <#if Data.get(key)?exists> 可以改成 <#if Data.get(key)??>,新版本的 freemarker 有一些更简单的新用法可以看看。 感谢分享,顶一个 79
夜辰

引用来自“JFinal”的评论

判断一个变量是否存在,可以直接用两个问号,也即 <#if Data.get(key)?exists> 可以改成 <#if Data.get(key)??>,新版本的 freemarker 有一些更简单的新用法可以看看。 感谢分享,顶一个 79
主要是为了弄怎么把map值取出来转成string。
×
夜辰
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: