freemarker中对null值问题的处理 您所在的位置:网站首页 freemark判断是否为空字符串 freemarker中对null值问题的处理

freemarker中对null值问题的处理

2024-05-30 14:19| 来源: 网络整理| 查看: 265

 

1. freemarker不支持null。

如果值为null会报错。

 

2.当值为null的处理

1)过滤不显示

Hello ${name!} 在属性后面加感叹号即可过滤null和空字符串

           if和”??“

           

                  无年龄值

           

 

       $和!

      ${age!'0'}

      如果age为null,默认给'0'

 

 

2)设置默认值

如${student1.user!"null"}

3)判断是否存在值

$stduent.user?if_exists}这样显示就没有问题了

 if判断null处理

 

 

 

=========================================================================

 

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

1 提供默认值  Mouse found  也可以直接${mouse?if_exists}  //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指令还隐含了两个循环变量: user_index:当前迭代项在所有迭代项中的位置,是数字值。 user_has_next:用于判断当前迭代项是否是所有迭代项中的最后一项。 这2个值也可以控制 null 或者0的出现。 

4可以对所有的变量进行空值处理,这里是全部替换为空字符串。当然也可以替换为其它字符串。 如果其中某些变量不需要这种替换,可以加入标签。 

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配置文件设置                true          

e.class目录下添加freemarker.properties文件:加入classic_compatible=true (需要struts2或spring) 

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

补充知识点: 

Freemarker中对List进行排序 

通常我们的排序操作都是通过DAO层来实现的,如果我们想随时更改我们的排序,那么就必须修改我们的DAO层代码,确实不方便。但Freemarker为我们提供了这样的排序方法,解决了这个问题。 1. sort升序排序函数 sort对序列(sequence)进行排序,要求序列中的变量必须是:字符串(按首字母排序),数字,日期值。 … 

2. sort_by函数 sort_by有一个参数,该参数用于指定想要排序的子变量,排序是按照变量对应的值进行排序,如: … age是User对象的属性,排序是按age的值进行的。 3. reverse降序排序函数     …      reverse使用同sort相同。reverse还可以同sort_by一起使用        如:想让用户按年龄降序排序,那么可以这个样写 … 

 

 

  

4)?? 用于判断是否为空

 当前用户没有权限角色  当前用户有权限角色

${user.role???string}这里将结果以字符串的形式输出:true 或者false

${user.role???string("YES","NO")} 这判定用户权限角色为空



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有