美文网首页
freemarker 对null 的处理

freemarker 对null 的处理

作者: eye33 | 来源:发表于2018-03-16 09:23 被阅读0次

转自:tivon

freemarker对null的处理 无非就这几种 

1 提供默认值 

<#if mouse?> 

Mouse found 

<#else> 

也可以直接${mouse?if_exists} 

<#if user.age??> 

//TO DO 

2.忽略null值 

假设前提:userName为null 

${userName}   error 

${userName!}  空白 

${userName!'tivon'}  tivon 

假设前提:user.name为null 

${user.name},异常 

${(user.name)!},显示空白 

${user.name!'vakin'},若user.name不为空则显示本身的值,否则显示vakin 

${user.name?default('vakin')},同上 

${user.name???string(user.name,'vakin')},同上 

3 list 

<#list userList as user> 

… 

List指令还隐含了两个循环变量: 

user_index:当前迭代项在所有迭代项中的位置,是数字值。 

user_has_next:用于判断当前迭代项是否是所有迭代项中的最后一项。 

这2个值也可以控制 null 或者0的出现。 

4<#escape x as x!"">可以对所有的变量进行空值处理,这里是全部替换为空字符串。当然也可以替换为其它字符串。 

如果其中某些变量不需要这种替换,可以加入<#noescape>标签。 

5 这种为全局配置方法 

配置classic_compatible=true可以满足一般需要。默认情况变量为null则替换为空字符串,如果需要自定义,写上${empty!"EmptyValue of fbysss"}的形式即可 

a.通过Configuration设置。Configuration cfg = new Configuration(); cfg.setClassicCompatible(true);//设置属性 

b.通过Eviroment设置。 

Environment env = template.createProcessingEnvironment(root, out); 

env.setClassicCompatible(true); 

c.通过ftl设置:在ftl前加入; 

d.通过Spring配置文件设置 

class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> 

 

 

true 

e.class目录下添加freemarker.properties文件:加入classic_compatible=true 

(需要struts2或spring) 

举一反三,其他属性也可以用类似方法进行设置。 

补充知识点: 

Freemarker中对List进行排序 

通常我们的排序操作都是通过DAO层来实现的,如果我们想随时更改我们的排序,那么就必须修改我们的DAO层代码,确实不方便。但Freemarker为我们提供了这样的排序方法,解决了这个问题。 

1. sort升序排序函数 

sort对序列(sequence)进行排序,要求序列中的变量必须是:字符串(按首字母排序),数字,日期值。 

<#list list?sort as l>… 

2. sort_by函数 

sort_by有一个参数,该参数用于指定想要排序的子变量,排序是按照变量对应的值进行排序,如: 

<#list userList?sort_by(“age”) as user>… 

age是User对象的属性,排序是按age的值进行的。 

3. reverse降序排序函数 

<#list list? reverse as l>… 

reverse使用同sort相同。reverse还可以同sort_by一起使用 

如:想让用户按年龄降序排序,那么可以这个样写 

<#list userList?sort_by(“age”)?reverse as user>… 

相关文章

  • freemarker 对null 的处理

    转自:tivon freemarker对null的处理 无非就这几种 1 提供默认值 <#if mouse?> M...

  • FreeMarker 对null值的处理技巧

    原文链接 以下引用官方描述:引用 1.判断是否存在,通过exists关键字或者"??"运算符。都将返回一个布尔值 ...

  • freemarker判断对象是否为空

    一、freemarker中显示某对象使用${object} 例: 二、如果对象出现null值,freemarker...

  • Django的ORM对null的处理

    Django的orm真的很好用,现在已经用的很熟了,但是在使用的过程中也发现了一些细微的差别,今天在优化时就发现了...

  • 处理null

    后台返回的结果 错误示例: 正确: 通过模拟请求我们看到的是null实际显示到界面上的时候是(null)如图尝试使...

  • swift 中对Null字段的处理

    在swift开发中,后台返回的数据字段有时候为字段,这时候如何移动端处理不好的话,程序就会引起崩溃问题...

  • struts2配置文件详解(三)

    3.2. 处理结果类型: Struts2提供了对不同种类返回结果的支持,常见的有JSP,FreeMarker...

  • 结构体

    你可能注意到null类型不在此列。他比较特殊,typeof对它的处理存在问题:typeof null === "o...

  • FreeMarker

    FreeMarker 主要内容 FreeMarker 概述 FreeMarker概念 ​ FreeMarker 是...

  • 【JavaWeb】FreeMarker快速入门

    FreeMarker Freemarker是免费开源的模板引擎技术;Freemarker脚本为Freemarker...

网友评论

      本文标题:freemarker 对null 的处理

      本文链接:https://www.haomeiwen.com/subject/ieklqftx.html