FreeMarker中if标签内的判断条件
FreeMarker中的<#if>标签除了里面直接判断 boolean 类型的变量外,也可以进行表达式判断,有几个细节记录一下
1. 判断对象是否存在(null)
经常会用到,如果对象 != null 则xxxx,在freemarker中表达比较奇怪,例如判断 target 是否为null,如果不为 nll 则做xxx动作
<#if target??>
xxxx
</#if>
(目标变量后面连续两个??)
2. 字符串或数字比较
java里标准字符串比较需要 .equals() 方法,在freemarkder中进行了简化,字符串的比较方法和数字做到完全一样
<#if str == "success">
xxx
</#if>
<#if str !== "error">
xxx
</#if>
引自:http://lj6684.iteye.com/blog/1594769
分享到:
相关推荐
FreeMarker使用${...}表达式来插入变量,#{...}用于输出注释,以及<#if>、等控制结构进行条件判断和循环。然而,这些默认标签可能无法满足所有复杂的场景,因此自定义标签就显得尤为必要。 自定义FreeMarker标签...
在FreeMarker中,`<#if>`语句用于进行条件判断,如果表达式的值为真,则执行相应的代码块。在某些情况下,我们可能需要在`<#if>`语句内部再嵌套`<#if>`,这就是所谓的`if`嵌套。 首先,让我们理解`<#if>`的基本语法...
在Freemarker中,`<#...>`是内置的指令,如`<#if>`、`<#foreach>`等,它们允许我们在模板中进行条件判断、循环等操作。同时,`${...}`用于输出变量的值。这些基础元素构成了Freemarker模板的基本语法。 自定义标签...
4. **条件逻辑**:FreeMarker的条件语句如`<#if>`、`<#else>`、`<#elseif>`可以与Shiro标签结合,构建复杂的权限控制逻辑。例如,你可以根据用户的角色或权限动态展示或隐藏某些元素。 5. **简化代码**:使用Shiro...
- **变量表达式**:`${}`用来输出变量,`#{}`用于注释,`<#if>`、`<#else>`、`<#else if>`进行条件判断,`<#foreach>`进行循环。 - **指令**:Freemarker提供了一系列的内置指令,如`include`用于包含其他模板,`...
2. **指令**:FreeMarker提供了一系列的内置指令,如`<#if>`进行条件判断,`<#foreach>`遍历集合,`<#assign>`定义变量,`<#include>`包含其他模板等。这些指令帮助开发者构建复杂的逻辑。 3. **模板继承与导入**:...
7. **条件与循环**:`<#if>`、`<#elseif>`、`<#else>`进行条件判断,`<#foreach>`、`<#list>`用于循环遍历集合。 8. **内置函数和方法**:Freemarker内置了如`default`、`escape`、`size`等函数,以及对象的`?`操作...
- **条件语句**:`<#if>`、`<#elseif>`、`<#else>` 用于实现条件判断。 - **循环结构**:`<#list>` 可以遍历集合或数组,实现循环输出。 - **注释**:`<!--...-->` 用于在模板中添加注释,不会出现在生成的输出中...
2. 控制结构:如`<#if>`、`<#else>`、`<#for>`等,用于条件判断和循环。 3. 函数和方法调用:Freemarker支持内置函数和对象的方法调用,如`length()`、`toUpperCase()`等。 4. 模板继承和导入:`<#include>`和`...
- **控制语句**:例如`<#if>`、`<#list>`等,这些标记用于实现条件判断和循环等功能。 - **特殊函数**:Freemarker还提供了许多内置函数,如`uppercase()`、`formatDate()`等,这些函数可以用来对数据进行处理。 ...
4. 条件语句:`<#if>`、`<#else>`、`<#elseif>`,实现条件判断。例如: ``` <#if user.isAdmin()> 欢迎管理员! 欢迎普通用户! </#if> ``` 5. 循环结构:`<#list>`,用于遍历集合数据。如: ``` ...
1. **Shiro Tags**:Shiro 提供了一系列的Freemarker标签,如`<@shiro.hasPermission>`,这些标签可以在模板中直接使用,用于判断用户是否具有特定的权限。 - `<@shiro.hasPermission name="permName">`: 如果用户...
- `<#if condition>` 结构用于条件判断。 - 支持多个 `<#elseif>` 分支。 - 可选的 `<#else>` 分支。 - 示例: ```freemarker <#if x = 1> x is 1 x is not 1 </#if> ``` **2. switch, case, default, ...
`elseif` 指令用于添加额外的条件判断分支。 **示例代码:** ```ftl <#if age > 60> 老年人 <#elseif age > 40> 中年人 <#elseif age > 20> 青年人 少年人 </#if> ``` 这段代码与 `else` 示例相同,这里不再...
这种情况下,可以通过Freemarker的条件判断和循环语句来实现这样的布局。 #### 三、实现思路 为了实现一行两列的布局,我们需要遵循以下步骤: 1. **初始化表格结构**:首先创建一个`<table>`标签作为容器。 2. *...
它的模板语言非常强大,提供了包括条件判断(if/elseif/else)、循环结构、宏(命名的和位置参数宏)、命名空间以及转换块等功能。此外,FreeMarker还内置了HTML转义和其他Web相关的处理功能,支持国际化和本地化,...
2. **控制结构**:FreeMarker 提供了类似于编程语言的控制结构,如`<#if>`、`<#else>`、`<#foreach>`等,用于条件判断和循环遍历。例如,你可以用 `<#if user.isAdmin>` 判断用户是否为管理员,或者用 `...
- **Freemarker模板**:模板中使用了`<#list>`指令来遍历`tablelist`数据集合,并通过条件判断`<#if tlist.loginid?exists>`来检查数据是否存在,然后展示`loginid`和`loginName`字段。分页导航部分使用了`<#if ...
6. **国际化与本地化**:如何在Freemarker中处理多语言环境,使用`<#t>`标签进行文本国际化。 7. **模板配置**:讲解`freemarker.cfg.xml`配置文件的使用,包括模板加载路径、错误处理策略等设置。 8. **性能优化*...