`
liyixing1
  • 浏览: 953080 次
  • 性别: 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)??
分享到:
评论

相关推荐

    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()`函数用于删除一个...

    velocity为空判断

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

    null移动端崩溃问题

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

    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。 了解并遵循这些规则,可以提高代码的可读性,减少错误,并使你的编程风格更加一致。良好的变量命名习惯不仅有助于个人编程技能的提升,也是团队合作中保持代码...

    git报错需要的null.sys

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

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

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

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

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

    请问ASPX中如何读取SESSION变量

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

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

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

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

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

    C语言中的"NULL"到底是什么?有什么用?

    1. **静态变量与“NULL”**:题目中提到的静态变量 `N` 的生命周期与函数调用无关,但这一点与“NULL”的使用并不直接相关。因此,理解“NULL”的正确含义不应受此干扰。 2. **函数参数传递**:C语言中,函数采用值...

    Oracle表类型表变量使用

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

    JQ 判断变量是否为空.rar

    这通常涉及到检查变量是否已定义、是否有值,或者更具体地,值是否为null、undefined、空字符串、零、空数组或空对象。本教程将深入探讨如何使用JavaScript和jQuery来执行这些检查。 首先,我们要明确“空”在不同...

    精彩编程与编程技巧-0、(空字串)、Null、Empty、与 Nothing 的区别...

    ' 处理null值 End If ``` #### 4. Empty - **定义与含义**:`Empty`在VBA(Visual Basic for Applications)等语言中通常用于表示一个未初始化的变量。它不是一个具体的值,而是一种状态。 - **应用场景**: -...

    linux常用c函数 环境变量篇.txt

    如果不存在,则创建一个新的环境变量。 **参数说明**: - `string`: 形如"name=value"的字符串指针。 **示例代码**: ```c #include #include int main() { char *p; if ((p = getenv("USER"))) { printf...

    Null Pointer;

    它指的是一个变量被赋值为null或nil,表示它没有指向任何对象或者内存位置。当我们试图访问这个null引用的变量时,程序通常会抛出一个异常,即著名的“空指针异常”。在Java中,这种异常被称为`NullPointerException...

Global site tag (gtag.js) - Google Analytics