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)??
分享到:
相关推荐
变量不为null #endif ``` ### 2. 判断Velocity变量是否为空 在Velocity中,"空"通常指的是变量的值为null或者空字符串。以下是如何进行空值判断的方法: #### 判断空: 使用逻辑非操作符 `!` 可以检查变量$xxx...
例如,在查询出征缴方式不为正划成功、倒扣成功的征收数据时,需要使用“is null”和“is not null”关键字。 了解 Oracle null 的使用是 Oracle 开发中非常重要的一部分。只有正确地理解和应用 null 的概念,才能...
删除环境变量需要先获取其`EnvironmentVariableTarget`,然后使用`SetEnvironmentVariable`方法将其值设为`null`。例如: ```csharp if (Environment.GetEnvironmentVariable("MyVar") != null) { Environment....
`getenv()`函数用于获取指定环境变量的值,如果该变量不存在,它将返回`NULL`。`setenv()`函数用于设置或更新环境变量,第三个参数`overwrite`决定是否允许覆盖已存在的同名变量。而`unsetenv()`函数用于删除一个...
这个描述中的“本类可以解决这个问题”暗示存在一个专门设计来处理null值的类或方法。 首先,我们需要理解为什么null值会导致移动应用崩溃。在大多数编程语言中,尝试访问null对象的方法或属性会抛出异常,这在Java...
3. **环境变量配置错误**:用户的环境变量配置可能错误地指定了`/dev/null`作为某些Git操作的路径,比如`GIT_FLUSH`或者`GIT_REDIRECT_STDERR`等,导致了尝试打开`/dev/null`作为文件进行操作。 4. **Git版本问题**...
`null` 在这里是一个服务名,可能代表一个不存在或者损坏的服务。在命令提示符(cmd)中输入 `sc query null` 可以查询名为“null”的服务是否存在,而 `sc start null` 则尝试启动这个服务。 当Git Bash闪退时,...
请注意,这样做可能会打破一些期望`nil`的行为,因为在Lua中,`nil`和任何值都不相等,而`"null"`字符串与其他字符串或变量可以进行比较。因此,如果你的代码依赖于`nil`的这种特性,可能会导致意外的结果。在进行...
- 全局变量和静态局部变量会被自动初始化为0或NULL。 了解并遵循这些规则,可以提高代码的可读性,减少错误,并使你的编程风格更加一致。良好的变量命名习惯不仅有助于个人编程技能的提升,也是团队合作中保持代码...
在实际开发中,我们经常需要判断一个变量是否为 undefined 或 null,以便进行相应的处理。例如: ```javascript var t1 = ""; var t2; if (t1 === undefined) { document.write("t1 is undefined"); } if (t2 === ...
2. **is_null()**:检查变量是否为`NULL`。 3. **is_int()** 和 **is_float()**:分别检查变量是否为整型和浮点型。 4. **is_string()**:检查变量是否为字符串。 5. **is_array()**:检查变量是否为数组。 6. *...
如果`Session["UserName"]`不为`null`,则将其转换为字符串;否则,`str`将保持为空。这种方法可以有效避免因`Session`变量未初始化而导致的运行时错误。 #### 方法三:在ASP和ASP.NET页面间共享Session数据 在实际...
在JavaScript中,判断变量是否为空是一个常见的需求,尤其在处理用户输入或者页面动态生成的内容时。空值通常包括null、undefined、空字符串以及仅包含空白字符的字符串。本文将详细介绍如何使用简写方法来判断变量...
在Oracle数据库系统中,表类型和表变量是高级PL/SQL编程的重要组成部分,它们提供了在存储过程、函数和触发器中处理数据集的有效方式。本文将深入探讨Oracle表类型表变量的使用,以及如何通过提供的SQL脚本进行实践...
你可以将一个引用类型的变量赋值为`null`,表示该变量当前不引用任何对象。例如:`String str = null;` 3. **空指针异常(NullPointerException)**: 当试图访问或操作一个`null`引用的对象时,会抛出`...
1. **静态变量与“NULL”**:题目中提到的静态变量 `N` 的生命周期与函数调用无关,但这一点与“NULL”的使用并不直接相关。因此,理解“NULL”的正确含义不应受此干扰。 2. **函数参数传递**:C语言中,函数采用值...
如果 `Rs.Fields(3)` 不为 Null 或 Empty,那么 `fieldValue` 将被赋予实际的字段值;反之,`fieldValue` 将被赋予空值。 通过上述方法,我们不仅能够有效地处理数据库查询中可能出现的 Null 或 Empty 字段,还能...
这通常涉及到检查变量是否已定义、是否有值,或者更具体地,值是否为null、undefined、空字符串、零、空数组或空对象。本教程将深入探讨如何使用JavaScript和jQuery来执行这些检查。 首先,我们要明确“空”在不同...
' 处理null值 End If ``` #### 4. Empty - **定义与含义**:`Empty`在VBA(Visual Basic for Applications)等语言中通常用于表示一个未初始化的变量。它不是一个具体的值,而是一种状态。 - **应用场景**: -...
如果不存在,则创建一个新的环境变量。 **参数说明**: - `string`: 形如"name=value"的字符串指针。 **示例代码**: ```c #include #include int main() { char *p; if ((p = getenv("USER"))) { printf...