`
liyixing1
  • 浏览: 972446 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

处理为null或者不存在的变量

阅读更多
FreeMarker 不能容忍引用不存在的变量,除非明确地告诉它当变量不存在时如何处理。

对程序员而言:一个不能存在的变量和一个是 null 的变量,对于 FreeMarker 来说是
一样的,所以这里丢失所指的包含这两种情况。

不论在哪里引用变量,都可以指定一个默认值来避免变量丢失这种情况,通过在变量名
后面跟着一个!和默认值。


<h1>Welcome ${user!"Anonymous"}!</h1>


就像上面的例子,当user不存在,那他会有个默认值Anonymous。

当然也可以通过放置??在变量名后面来询问 FreeMarker 一个变量是否存在。将它和 if
指令合并,那么如果 user 变量不存在的话将会忽略整个问候代码段:
<#if user??><h1>Welcome ${user}!</h1></#if>


关于多级访问的变量,比如 animals.python.price ,书写代码:animals.python.price!0,仅当 animals.python 存在而仅仅最后一个子变量 price 可能不存在。
如果 animals 或者 python不存在,那么模板处理将会以“未定义的变量”错误停止。为了防止这种情况的发生,可以这样来书写代码(animals.python.price)!0 。

这种情况下当 animals 或python 不存在时表达式的结果仍然是 0。

对于??也是同样用来的处理这种逻辑的:
animals.python.price??对比(animals.python.price)??
分享到:
评论

相关推荐

    velocity为空判断

    变量不为null #endif ``` ### 2. 判断Velocity变量是否为空 在Velocity中,"空"通常指的是变量的值为null或者空字符串。以下是如何进行空值判断的方法: #### 判断空: 使用逻辑非操作符 `!` 可以检查变量$xxx...

    Oracle null的使用

    例如,在查询出征缴方式不为正划成功、倒扣成功的征收数据时,需要使用“is null”和“is not null”关键字。 了解 Oracle null 的使用是 Oracle 开发中非常重要的一部分。只有正确地理解和应用 null 的概念,才能...

    c#编程设置环境变量

    删除环境变量需要先获取其`EnvironmentVariableTarget`,然后使用`SetEnvironmentVariable`方法将其值设为`null`。例如: ```csharp if (Environment.GetEnvironmentVariable("MyVar") != null) { Environment....

    Linux如何处理当前运行环境的环境变量

    `getenv()`函数用于获取指定环境变量的值,如果该变量不存在,它将返回`NULL`。`setenv()`函数用于设置或更新环境变量,第三个参数`overwrite`决定是否允许覆盖已存在的同名变量。而`unsetenv()`函数用于删除一个...

    安装Git时遇到找不到`/dev/null`的问题

    当Git安装程序无法找到`/dev/null`时,通常意味着当前操作系统环境不支持这种设备文件的创建,或者在安装过程中环境变量没有正确设置。如果是在Windows系统上,用户可以采用Git的Windows版本,或者使用Windows ...

    null移动端崩溃问题

    这个描述中的“本类可以解决这个问题”暗示存在一个专门设计来处理null值的类或方法。 首先,我们需要理解为什么null值会导致移动应用崩溃。在大多数编程语言中,尝试访问null对象的方法或属性会抛出异常,这在Java...

    git报错需要的null.sys

    3. **环境变量配置错误**:用户的环境变量配置可能错误地指定了`/dev/null`作为某些Git操作的路径,比如`GIT_FLUSH`或者`GIT_REDIRECT_STDERR`等,导致了尝试打开`/dev/null`作为文件进行操作。 4. **Git版本问题**...

    Git bash闪退 sc start null

    `null` 在这里是一个服务名,可能代表一个不存在或者损坏的服务。在命令提示符(cmd)中输入 `sc query null` 可以查询名为“null”的服务是否存在,而 `sc start null` 则尝试启动这个服务。 当Git Bash闪退时,...

    lua-cjson decode中null改成nil

    请注意,这样做可能会打破一些期望`nil`的行为,因为在Lua中,`nil`和任何值都不相等,而`"null"`字符串与其他字符串或变量可以进行比较。因此,如果你的代码依赖于`nil`的这种特性,可能会导致意外的结果。在进行...

    C语言变量命名规则

    - 全局变量和静态局部变量会被自动初始化为0或NULL。 了解并遵循这些规则,可以提高代码的可读性,减少错误,并使你的编程风格更加一致。良好的变量命名习惯不仅有助于个人编程技能的提升,也是团队合作中保持代码...

    js判断undefined类型,undefined,null,NaN的区别

    在实际开发中,我们经常需要判断一个变量是否为 undefined 或 null,以便进行相应的处理。例如: ```javascript var t1 = ""; var t2; if (t1 === undefined) { document.write("t1 is undefined"); } if (t2 === ...

    NullPointerError.md

    - 条件检查:使用if语句检查对象是否为null,只有当对象不为null时,才对其属性或方法进行操作。 - 使用Optional类处理可能的null对象:通过Optional的isPresent()方法检查对象是否存在,然后根据检查结果决定是否...

    PHP 数据类型和判断变量类型

    2. **is_null()**:检查变量是否为`NULL`。 3. **is_int()** 和 **is_float()**:分别检查变量是否为整型和浮点型。 4. **is_string()**:检查变量是否为字符串。 5. **is_array()**:检查变量是否为数组。 6. *...

    ADODB rs.fields()不能为空的解决方案

    如果 `Rs.Fields(3)` 不为 Null 或 Empty,那么 `fieldValue` 将被赋予实际的字段值;反之,`fieldValue` 将被赋予空值。 通过上述方法,我们不仅能够有效地处理数据库查询中可能出现的 Null 或 Empty 字段,还能...

    请问ASPX中如何读取SESSION变量

    如果`Session["UserName"]`不为`null`,则将其转换为字符串;否则,`str`将保持为空。这种方法可以有效避免因`Session`变量未初始化而导致的运行时错误。 #### 方法三:在ASP和ASP.NET页面间共享Session数据 在实际...

    js判断为空Null与字符串为空简写方法

    在JavaScript中,判断变量是否为空是一个常见的需求,尤其在处理用户输入或者页面动态生成的内容时。空值通常包括null、undefined、空字符串以及仅包含空白字符的字符串。本文将详细介绍如何使用简写方法来判断变量...

    Oracle表类型表变量使用

    在Oracle数据库系统中,表类型和表变量是高级PL/SQL编程的重要组成部分,它们提供了在存储过程、函数和触发器中处理数据集的有效方式。本文将深入探讨Oracle表类型表变量的使用,以及如何通过提供的SQL脚本进行实践...

    ERR-NULL-POINTER(解决方案).md

    在C语言中,当指针被声明后,默认不会自动初始化为NULL,因此在使用之前需要手动赋值或确保其不为空。下面是一个C语言中检查并处理空指针的示例代码: ```c int* ptr = getSomePointer(); // 获取某个指针 if (ptr ...

    Java中有关Null的9件事Java开发Java经验技巧

    你可以将一个引用类型的变量赋值为`null`,表示该变量当前不引用任何对象。例如:`String str = null;` 3. **空指针异常(NullPointerException)**: 当试图访问或操作一个`null`引用的对象时,会抛出`...

    ERR_NULL_REFERENCE(解决方案).md

    如果一个变量可能未初始化或有可能不存在,那么在使用之前应该检查它是否为null或undefined。此外,JavaScript从ES2020开始引入了可选链式调用(Optional Chaining),允许开发者通过`?.`运算符安全地访问深层属性,...

Global site tag (gtag.js) - Google Analytics