[freemarker篇]03.如何处理空值

我想说的一点,我写的东西没有那么权威,这都是我实际开发中使用的,可能缺少很多!

例如这篇要说的如何处理空值,我发现我使用的跟网上很多写的不太一样,我也没有过多的去尝试网上的那么多写法!

抱歉,我只是写一些能对你们有所帮助吧!



第一步:我新建一个角色类

public class Role {

    private String role_name;

    public String getRole_name() {
        return role_name;
    }

    public void setRole_name(String role_name) {
        this.role_name = role_name;
    }

}

修改一下用户类:

public class User {

    private String account;
    private Integer age;

    private Role role;//增加关联对象

    public Role getRole() {
        return role;
    }
    public void setRole(Role role) {
        this.role = role;
    }
    public User() {
    }
    public User(String account, Integer age) {
        this.account = account;
        this.age = age;
    }

    public String getAccount() {
        return account;
    }
    public void setAccount(String account) {
        this.account = account;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }

}

第二步,准备测试数据,如下两种数据,自己看看吧

//如何处理空值
    @Test
    public void doNull() {
        // 1.创建数据模型
        Map<String, Object> root = new HashMap<String, Object>();
        //传递数据之一个对象
        root.put("user", new User());//传递的数据都是空值
        //这需要重点掌握
        root.put("user1", new User("四胖子",18));//但是关联的role对象位kong
        // 3.生成HTML文件
        fu.exportHtml("demo03.ftl", root, "处理空值.html");
    }

第三步,新建模版文件demo03.ftl文件

<!DOCTYPE html>
<html>
  <head>
    <title>关于如何处理空值</title>
   <meta charset="UTF-8">
  </head>

  <body>
    <h1>处理空值-使用叹号进行判断</h1>
    ${user.account!"没有账号信息"}----${user.age!} <#-- 为空的时候什么都不显示 -->
    <hr/>
    <h1>如何判断关联对象是否为空和属性为空:注意写法</h1>
     ${user1.account}----${user1.age} --- ${user1.role!"没有赋值"}  --- ${(user1.role.role_name)!"一定要注意使用了小括号"}

  </body>
</html>

测试结果如下:



网上处理的文件:http://www.oecp.cn/hi/wlo_o/blog/2055 这我没有参考,跟他的不太一样

希望得到你们的推荐和支持,胖先生!继续努力!

时间: 2024-08-27 02:14:49

[freemarker篇]03.如何处理空值的相关文章

iOS系列 基础篇 03 探究应用生命周期

iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本篇主要探讨的是iOS应用中各种状态的跃迁过程,建议大家通过修改AppDelegate.swift,在每个过程中添加日志输出代码,从而观察其变化. 作为应用程序的委托对象,AppDelegate类在应用程序生命周期的不同阶段会回调不同的方法. 首先,咱们先来了解一下iOS应用的不同状态和他们之间的关系

iOS开发项目篇—03添加导航控制器

iOS开发项目篇—03添加导航控制器 一.简单说明 分析:分析微博应用,我们需要给每个子控制器都添加一个导航控制器(每个子控制器的导航不一样),所以需要新建一个导航控制器,然后把该导航控制器作为window的根控制器,添加的四个子控制器,分别添加在导航控制器上,也就是说整个项目采用当前主流的UI框架,一个UITabBarController管理着四个UINavigationController,而每个UINavigationController则分别管理着“首页”.“消息”.“发现”和“我”这四

Exchange 2016部署实施案例篇-03.Exchange部署篇(中)

上一章<Exchange 2016部署实施案例篇-03.Exchange部署篇(上)>我们对部署Exchange Server 2016的先决条件做了简单的讲解,接下来我们进入先决条件准备工作. 先简单说下环境: 服务器名称 IP地址 系统 作用 ADSrv01 192.168.1.10 Win2016 GC(已部署完成) ADSrv02 192.168.1.20 Win2016 GC(已部署完成) EXSrv01 192.168.1.50 Win2016 MailBox(未安装) EXSrv

“挖掘机”升级路 一篇(03)--HBase集群安装中的收获

粗略算算,从上周五到这周二,折腾Hadoop已经三天了.这三天我是过得诚惶诚恐,作为一个学徒,老大虽然没有说啥,但是我恨不得立马完成这些基本的部署工作,感觉拖了好久好久.简单的总结一下,第一天折腾Hadoop单机和伪分布式的安装,第二天在折腾Hive的安装,以失败告终,第三天折腾HBase的集群安装,在主节点上安装成功. 也就来具体的谈谈今天的收获,今天的参考资料主要是这么两篇1.分布式实时日志系统(四) 环境搭建之centos 6.4下hbase 1.0.1 分布式集群搭建(我FQ看的,不知道

WebBug靶场基础篇 — 03

基础篇 6 - 16 关... 在记录之前,先说一件事 = =! 小学生真多 = =!好心提供一个靶场,玩玩就算了,他挂黑页 ?现在好了,以后这个靶场不对外啊!你高兴了?爽了吧? 都是新手过来的,好心搭个公网的漏洞网站,还真有挂黑页的... 第六关... 这个关卡设置的有点问题,只有一个登陆框,也没给提示账号密码,弱密码也试了好几波,都没进去 = =!然后我就去数据库里看看密码 = =! 毕竟源码设计的还是有问题,然后我就开始登陆了. 看到这里,直接抓包,毕竟不就是一个修改参数的漏洞嘛... 是

iOS开发多线程篇 03 —线程安全

iOS开发多线程篇—线程安全 一.多线程的安全隐患 资源共享 1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源 比如多个线程访问同一个对象.同一个变量.同一个文件 当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题 示例一: 示例二: 问题代码: 1 // 2 // YYViewController.m 3 // 05-线程安全 4 // 5 // Created by apple on 14-6-23. 6 // Copyright (c) 2014年 itcase.

PE格式详细讲解3 - 系统篇03

作者:小甲鱼 接着我们来谈谈 IMAGE_OPTIONAL_HEADER 结构,正如名字的意思,这是一个可选映像头,是一个可选的结构. 但是呢,实际上上节课我们讲解的 IMAGE_FILE_HEADER 结构远远不足以来定义 PE 文件的属性. 因此,这些属性在 IMAGE_OPTIONAL_HEADER 结构中进行定义. 因此这两个结构联合起来,才是一个完整的 “PE文件结构” . typedef struct _IMAGE_OPTIONAL_HEADER { // // Standard f

[freemarker篇]05.关于集合的遍历

人啊,有的时候就是没有办法坚持一些事情,总是因为各种理由在推脱,逐渐就变成了拖延症!例如胖先生的减肥计划,其实本来就没有计划,属于散漫形式的!一直减肥,一直在肥!总是说没有时间,没有时间!其实有时候就是自己懒! 人啊,有时候想去坚持,总是搞不懂自己要什么?也是自己没有毅力吧! 话题扯的有点远了,再次更新一下关于Freemarker的使用,关于迭代集合,这个还是很实用的! 今天买了一本书,希望自己能坚持读完吧<编码高质量代码--改善Java程序的151个建议>算不算推广呢 /** * 测试研究题

Exchange 2016部署实施案例篇-03.Exchange部署篇(下)

昨天我们一起准备完成了Exchange Server 2016的先决条件,今天我们一起来看下如何部署Exchange Server 2016. 最近想了想,决定该篇使用2种方式部署Exchange Server 2016,这样可能会让大家对Exchange Server 2016的部署更了解些,废话不多说,开始今天的内容. 图形化界面部署 1.首先我们打开Exchange Server 2016安装介质,并双击"Setup.exe"文件 2.在"是否检查更新"界面根