`

freemaker 条件判断

阅读更多

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中,我们可以使用条件语句`&lt;#if&gt;`来检查对象是否为空。例如,如果你有一个名为`name`的对象,你可以这样写: ```freemarker Name is present: ${name} Name is empty or null ``` 这里的`?`操作...

    freemarker 自定义freeMarker标签

    FreeMarker使用${...}表达式来插入变量,#{...}用于输出注释,以及、等控制结构进行条件判断和循环。然而,这些默认标签可能无法满足所有复杂的场景,因此自定义标签就显得尤为必要。 自定义FreeMarker标签通常涉及...

    FreeMarker手册-Freemarker 2.3.18

    FreeMarker支持多种指令,如`&lt;#if&gt;`、`&lt;#else&gt;`、`&lt;#else_if&gt;`用于条件判断,`&lt;#foreach&gt;`、`&lt;#break&gt;`、`&lt;#continue&gt;`用于循环控制,`&lt;#assign&gt;`、`&lt;#global&gt;`进行变量定义,`&lt;#function&gt;`自定义函数等。...

    FreeMarker 解析后缀名文件

    - **控制结构**: `if`、`&lt;#if&gt;`、`&lt;#else&gt;`、`&lt;#foreach&gt;`等用于条件判断和循环。 - **函数调用**: 可以调用模板中的方法,例如 `${user.getName()}`。 3. **FreeMarker解析后缀名文件** 当我们需要根据不同的...

    freemarker-2.3.28.jar

    8. **条件语句和循环结构**: 如`&lt;#if&gt;`, `&lt;#else&gt;`, `&lt;#elseif&gt;`用于条件判断,`&lt;#foreach&gt;`用于遍历集合,提供了丰富的控制流程。 9. **模板继承与布局**: Freemarker支持模板继承,通过`&lt;#include&gt;`和`&lt;#assign&gt;`...

    freemarker

    它们允许你在模板中进行条件判断、循环和变量赋值。 4. **内置函数(Built-in Functions)**:Freemarker提供了许多内置函数,如`?html`(防止XSS攻击)、`?length`(获取数组或列表长度)等,可以方便地在模板中...

    Velocity 和 FreeMarker区别

    - **FreeMarker**的条件判断语句更为灵活,支持更复杂的逻辑判断,如`&lt;#if condition&gt;`。 - **Velocity**同样支持条件判断,但其语法结构相对简单,如`#if($condition)`。 4. **宏定义**: - **FreeMarker**支持...

    FreeMarker2.3.23官方中文文档

    2. **指令**:FreeMarker提供了一系列的内置指令,如`&lt;#if&gt;`进行条件判断,`&lt;#foreach&gt;`遍历集合,`&lt;#assign&gt;`定义变量,`&lt;#include&gt;`包含其他模板等。这些指令帮助开发者构建复杂的逻辑。 3. **模板继承与导入**:...

    FreeMarker

    2. **控制结构**:FreeMarker 提供了类似于编程语言的控制结构,如`&lt;#if&gt;`、`&lt;#else&gt;`、`&lt;#foreach&gt;`等,用于条件判断和循环遍历。例如,你可以用 `&lt;#if user.isAdmin&gt;` 判断用户是否为管理员,或者用 `...

    FreeMarker相关学习文档

    3. 指令和变量:FreeMarker支持多种指令,如`&lt;#if&gt;`(条件判断)、`&lt;#foreach&gt;`(循环)和`&lt;#assign&gt;`(赋值)。变量则用于显示数据模型中的值。 二、FreeMarker的主要特性 1. 非脚本语言:FreeMarker模板不包含...

    FreeMarker中文文档.pdf下载

    常见的指令包括`&lt;#if&gt;`用于条件判断、`&lt;#list&gt;`用于循环遍历集合等。 #### 3. 表达式(Expressions) 表达式是FreeMarker中用于获取数据值的方式。它们可以是简单的变量引用,也可以是函数调用或者更复杂的运算...

    FreeMarker通用的分页

    - **条件分支**:使用`&lt;#if&gt;`结构判断是否需要调整显示的最后一页,以避免超出总页数。 #### 3. 显示页码宏(Macro) `showPage`宏负责实际的页码显示。它接收起始页和结束页作为参数,并遍历这些页码。对于当前页...

    freemarker入门文档及例子

    4. 条件语句:`&lt;#if&gt;`, `&lt;#else&gt;`, `&lt;#elseif&gt;` 用于条件判断,类似于Java的if...else...结构。 5. 循环结构:`&lt;#foreach&gt;` 用于遍历集合,如数组、列表等。 6. 链接和路径:`&lt;@link&gt;` 用于生成链接,可以动态生成...

    struts2+freemarker

    它的语法简洁且强大,支持条件判断、循环、函数调用等编程特性。在Struts2中,Freemarker模板通常被用作视图层,将由Action处理后的数据填充到模板中,生成最终的用户界面。开发者可以定义变量和方法,在模板中使用...

    Freemarker操作字符串

    FreeMarker支持`&lt;#if&gt;`、`&lt;#elseif&gt;`、`&lt;#else&gt;`等条件判断,可以对字符串进行条件处理。例如: ```html ("Doe")&gt; 姓名包含"Doe" 姓名不包含"Doe" ``` 8. **模板中的循环**: 使用`&lt;#list&gt;`可以遍历...

    freemarker中文学习资料

    - **条件语句**:`&lt;#if&gt;`、`&lt;#elseif&gt;`、`&lt;#else&gt;` 用于实现条件判断。 - **循环结构**:`&lt;#list&gt;` 可以遍历集合或数组,实现循环输出。 - **注释**:`&lt;!--...--&gt;` 用于在模板中添加注释,不会出现在生成的输出中...

    freemarker生成xml示例

    值得注意的是,Freemarker支持条件判断、循环、函数调用等多种复杂逻辑,使得XML生成更加灵活。此外,模板文件可以很好地与业务逻辑分离,提高代码的可读性和可维护性。 在压缩包"Freemarker4"中,可能包含了模板...

    FreeMarker+中文手册

    3. **模板语言(Template Language)**:FreeMarker的模板语言包括了一系列的指令和内置函数,如`&lt;#if&gt;`用于条件判断,`&lt;#foreach&gt;`用于循环,`&lt;#assign&gt;`用于赋值等。 4. **配置(Configuration)**:FreeMarker的...

    freemarker 2.3.10架包

    例如,`&lt;#if&gt;`、`&lt;#foreach&gt;`等指令用于条件判断和循环,`${}`用于插入变量值。 2. **数据驱动**:Freemarker不处理业务逻辑,它只负责展示由应用程序提供的数据。数据模型通常是一个Map或JavaBean,其中的键值对...

Global site tag (gtag.js) - Google Analytics