if...else...
<#if condition>
...
<#elseif condition2>
...
<#elseif condition3>
...
<#else>
...
</#if>
只有一个if的情况:
<#if x = 1>
x is 1
</#if>
包含elseif的情况:
<#if x = 1>
x is 1
<#elseif x = 2>
x is 2
<#elseif x = 3> //红色位置今以前出现else if 之间有空格,这个没有,今天出现这个.....
x is 3
</#if>
包含else的用法:
<#if x = 1>
x is 1
<#elseif x = 2>
x is 2
<#elseif x = 3>
x is 3
<#elseif x = 4>
x is 4
<#else>
x is not 1 nor 2 nor 3 nor 4
</#if>
switch...case...default...
<#switch value>
<#case refValue1>
...
<#break>
<#case refValue2>
...
<#break>
<#case refValueN>
...
<#break>
<#default>
...
</#switch>
类似Java的普通用法:
<#switch being.size>
<#case "small">
This will be processed if it is small
<#break>
<#case "medium">
This will be processed if it is medium
<#break>
<#case "large">
This will be processed if it is large
<#break>
<#default>
This will be processed if it is neither
</#switch>
不使用break的方法,即在case中进行判断:
<#switch x>
<#case x = 1>
1
<#case x = 2>
2
<#default>
d
</#switch>
循环迭代结构
<#list sequence as item>
...
</#list>
迭代的同时会生成两个变量:item_index,item_has_next,意如其名:
<#assign seq = ["winter", "spring", "summer", "autumn"]>
<#list seq as x>
${x_index + 1}. ${x}<#if x_has_next>,</#if>
</#list>
也可以用break跳出循环,用法和switch语句中的方法类似。
相关推荐
FreeMarker使用${...}表达式来插入变量,#{...}用于输出注释,以及、等控制结构进行条件判断和循环。然而,这些默认标签可能无法满足所有复杂的场景,因此自定义标签就显得尤为必要。 自定义FreeMarker标签通常涉及...
在FreeMarker中,我们可以使用条件语句`<#if>`来检查对象是否为空。例如,如果你有一个名为`name`的对象,你可以这样写: ```freemarker Name is present: ${name} Name is empty or null ``` 这里的`?`操作...
FreeMarker支持多种指令,如`<#if>`、`<#else>`、`<#else_if>`用于条件判断,`<#foreach>`、`<#break>`、`<#continue>`用于循环控制,`<#assign>`、`<#global>`进行变量定义,`<#function>`自定义函数等。...
- **控制结构**: `if`、`<#if>`、`<#else>`、`<#foreach>`等用于条件判断和循环。 - **函数调用**: 可以调用模板中的方法,例如 `${user.getName()}`。 3. **FreeMarker解析后缀名文件** 当我们需要根据不同的...
8. **条件语句和循环结构**: 如`<#if>`, `<#else>`, `<#elseif>`用于条件判断,`<#foreach>`用于遍历集合,提供了丰富的控制流程。 9. **模板继承与布局**: Freemarker支持模板继承,通过`<#include>`和`<#assign>`...
它们允许你在模板中进行条件判断、循环和变量赋值。 4. **内置函数(Built-in Functions)**:Freemarker提供了许多内置函数,如`?html`(防止XSS攻击)、`?length`(获取数组或列表长度)等,可以方便地在模板中...
- **FreeMarker**的条件判断语句更为灵活,支持更复杂的逻辑判断,如`<#if condition>`。 - **Velocity**同样支持条件判断,但其语法结构相对简单,如`#if($condition)`。 4. **宏定义**: - **FreeMarker**支持...
2. **指令**:FreeMarker提供了一系列的内置指令,如`<#if>`进行条件判断,`<#foreach>`遍历集合,`<#assign>`定义变量,`<#include>`包含其他模板等。这些指令帮助开发者构建复杂的逻辑。 3. **模板继承与导入**:...
2. **控制结构**:FreeMarker 提供了类似于编程语言的控制结构,如`<#if>`、`<#else>`、`<#foreach>`等,用于条件判断和循环遍历。例如,你可以用 `<#if user.isAdmin>` 判断用户是否为管理员,或者用 `...
3. 指令和变量:FreeMarker支持多种指令,如`<#if>`(条件判断)、`<#foreach>`(循环)和`<#assign>`(赋值)。变量则用于显示数据模型中的值。 二、FreeMarker的主要特性 1. 非脚本语言:FreeMarker模板不包含...
7. **条件与循环**:`<#if>`、`<#elseif>`、`<#else>`进行条件判断,`<#foreach>`、`<#list>`用于循环遍历集合。 8. **内置函数和方法**:Freemarker内置了如`default`、`escape`、`size`等函数,以及对象的`?`操作...
常见的指令包括`<#if>`用于条件判断、`<#list>`用于循环遍历集合等。 #### 3. 表达式(Expressions) 表达式是FreeMarker中用于获取数据值的方式。它们可以是简单的变量引用,也可以是函数调用或者更复杂的运算...
4. 条件语句:`<#if>`, `<#else>`, `<#elseif>` 用于条件判断,类似于Java的if...else...结构。 5. 循环结构:`<#foreach>` 用于遍历集合,如数组、列表等。 6. 链接和路径:`<@link>` 用于生成链接,可以动态生成...
- **条件分支**:使用`<#if>`结构判断是否需要调整显示的最后一页,以避免超出总页数。 #### 3. 显示页码宏(Macro) `showPage`宏负责实际的页码显示。它接收起始页和结束页作为参数,并遍历这些页码。对于当前页...
它的语法简洁且强大,支持条件判断、循环、函数调用等编程特性。在Struts2中,Freemarker模板通常被用作视图层,将由Action处理后的数据填充到模板中,生成最终的用户界面。开发者可以定义变量和方法,在模板中使用...
3. 条件表达式 `#[if condition]...#[else]...#[/if]`:进行条件判断。 4. 循环表达式 `#[foreach item in items]...#[/foreach]`:遍历集合。 5. 注释 `<!--#ftl comment -->`:添加注释。 五、与Java代码交互 在...
FreeMarker支持`<#if>`、`<#elseif>`、`<#else>`等条件判断,可以对字符串进行条件处理。例如: ```html ("Doe")> 姓名包含"Doe" 姓名不包含"Doe" ``` 8. **模板中的循环**: 使用`<#list>`可以遍历...
- **条件语句**:`<#if>`、`<#elseif>`、`<#else>` 用于实现条件判断。 - **循环结构**:`<#list>` 可以遍历集合或数组,实现循环输出。 - **注释**:`<!--...-->` 用于在模板中添加注释,不会出现在生成的输出中...
值得注意的是,Freemarker支持条件判断、循环、函数调用等多种复杂逻辑,使得XML生成更加灵活。此外,模板文件可以很好地与业务逻辑分离,提高代码的可读性和可维护性。 在压缩包"Freemarker4"中,可能包含了模板...