freemarker的list的应用

合集下载

freemarker中数据类型定义

freemarker中数据类型定义

freemarker中数据类型定义"Freemarker中数据类型定义"Freemarker是一种流行的Java模板引擎,常被用于生成动态的网页内容。

它提供了多种数据类型,用于处理和展示不同种类的数据。

本文将详细介绍Freemarker中的不同数据类型,并提供一些示例来说明其用法和特点。

一、字符串类型(String)字符串是Freemarker中最常见的数据类型之一。

可以通过用双引号("")或单引号('')括起来的文本来定义字符串。

例如:<#assign name = "John Doe">在上面的示例中,我们定义了一个名为name的字符串变量,并赋值为"John Doe"。

二、数字类型(Number)数字类型可以用来表示整数或浮点数。

Freemarker支持基本的四则运算和比较操作,以及复杂的数学函数。

可以直接使用数字字面量来定义数字类型的变量。

例如:<#assign age = 25>在上面的示例中,我们定义了一个名为age的数字变量,并赋值为25。

三、布尔类型(Boolean)布尔类型只有两个取值,即true和false。

可以直接使用这些值来定义布尔类型的变量,也可以通过逻辑运算和比较操作得到布尔类型的结果。

例如:<#assign isStudent = true>在上面的示例中,我们定义了一个名为isStudent的布尔变量,并赋值为true。

四、日期类型(Date)日期类型用于表示特定的日期和时间。

可以使用Freemarker的日期和时间函数来处理和展示日期类型的数据。

例如:<#assign today = .now>在上面的示例中,我们定义了一个名为today的日期变量,并赋值为当前的日期和时间。

五、列表类型(List)列表类型用于存储一组有序的数据。

Freemarkerlist的简单使用

Freemarkerlist的简单使用

Freemarkerlist的简单使用Freemarker是一种用于Java和Java平台上的模板引擎。

它具有简单易用、快速和灵活的特点,被广泛应用于Web开发中的视图渲染、页面生成和电子邮件模板等场景。

其中,Freemarker提供了对列表(List)的强大支持,可以通过简单的方式实现列表的遍历、分页和过滤等功能。

本文将详细介绍Freemarker中列表的简单使用。

### 1. 引入Freemarker依赖在使用Freemarker之前,需要在项目的构建文件(如Maven的pom.xml或Gradle的build.gradle)中引入Freemarker的依赖。

以下是Maven的示例配置:```xml<dependencies><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.30</version></dependency></dependencies>```### 2. 创建Freemarker配置在使用Freemarker之前,需要创建Freemarker的配置对象,用于指定模板文件的位置和其他相关设置。

如下所示:```javaimport freemarker.template.Configuration;import freemarker.template.TemplateExceptionHandler;// 创建Freemarker配置Configuration cfg = newConfiguration(Configuration.VERSION_2_3_30);cfg.setClassForTemplateLoading(Main.class, "/templates");cfg.setDefaultEncoding("UTF-8");cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RET HROW_HANDLER);```这里的示例代码中,使用`setClassForTemplateLoading(`方法指定模板文件所在的类路径(相对于类的所在位置)。

freemarker高级语法

freemarker高级语法

freemarker高级语法Freemarker高级语法Freemarker是一种模板引擎,它使用简单而强大的语法来生成动态内容。

除了基本语法外,Freemarker还提供了一些高级语法,用于更灵活地处理模板和数据。

本文将介绍一些常用的Freemarker高级语法,以帮助开发人员更好地使用该模板引擎。

一、条件语句在Freemarker中,我们可以使用条件语句来根据特定的条件决定是否输出内容。

条件语句主要有if-else和switch-case两种形式。

1. if-else语句if-else语句用于在满足特定条件时输出内容,语法如下:```<#if condition>输出内容1<#elseif condition2>输出内容2<#else>输出内容3</#if>```其中,condition是一个布尔表达式,可以是变量、逻辑运算符、比较运算符等。

当condition为true时,输出内容1;当condition为false且condition2为true时,输出内容2;否则,输出内容3。

2. switch-case语句switch-case语句用于根据不同的取值输出不同的内容,语法如下:```<#switch variable><#case value1>输出内容1<#case value2>输出内容2<#default>输出内容3</#switch>```其中,variable是一个变量,可以是数值、字符串等。

当variable 的取值与某个case的值相等时,输出相应的内容;如果没有匹配的case,则输出default中的内容。

二、循环语句循环语句是在Freemarker中非常常用的一种语法,它可以用来遍历集合、重复输出内容等。

常用的循环语句有list、foreach和while。

1. list循环list循环用于遍历一个列表,并输出其中的每个元素。

freemark list语法

freemark list语法

freemark list语法FreeMarker 的 list 指令用于循环输出列表中的元素。

下面是其常用语法:```。

<#list items as item>。

${item}。

</#list>。

```。

其中:- `items` 是要循环的列表变量名;- `item` 是循环过程中每个元素的变量名,可以根据需要自定义;-循环体内部就是要输出的内容,这里使用了`${}`语法输出变量。

可以用 `item_inde某` 变量获取当前循环的次数,例如:```。

<#list items as item>。

${item_inde某+1}. ${item}。

</#list>。

```。

输出的结果会类似于:```。

1. apple。

2. banana。

3. orange。

```。

还可以添加 `separator` 属性指定分隔符,例如:```。

<#list items as item separator=", ">。

${item}。

</#list>。

```。

输出结果为:```。

apple, banana, orange。

```。

在 `list` 指令中,还可以使用 `if` 条件判断语句过滤输出的元素,例如:```。

<#list items as item>。

<#if item?starts_with("a")>。

${item}。

</#if>。

</#list>。

```。

输出结果为:```。

apple。

```。

更多高级用法,如排序、分页等,可以参考官方文档。

Freemarkerlist的简单使用

Freemarkerlist的简单使用

Freemarkerlist的简单使⽤freemarker list (长度,遍历,下标,嵌套,排序)1. freemarker获取list的size :JavaArrayList<String> list = new ArrayList<String>();Freemaker${list?size}2. list的遍历:<#list animals as being><tr><td>${}${being.price}<td></tr></#list>3. 遍历MAP<#list map?keys as k><option value="${k}">${map[k]}</option></#list>4.list遍历中的下标序号:_index是list的⼀个属性<#list list as a>${a_index}</#list>5.取LIST中第i个元素的值${list[i]}嵌套时前⾯要有括号,如下,将字符串变成list,然后取第i个元素的值${(str?split(","))[i]}6. list的嵌套:<#list jsskList as jsskVO><#list kcList as kcVO><#if kcVO.kch=jsskVO.kch> (kcVO⾥有编号和名称,⽽jsskVO⾥只有编号)${kcVO.kcm}</#if></#list></#list>7. list排序:升序 .sort_by()<#list list?sort_by("字段") as x></#list>降序 .sort_by()?reverse<#list list?sort_by("字段")?reverse as x></#list>8.item_has_next,size使⽤:<#list userList as user><#if !user_has_next>共有${userList?size}最后⼀个⽤户是:${erName} </#if></#list>。

freemarker的标签语法

freemarker的标签语法

一、基本标签1. `<#assign>`:用于声明变量,并为其赋值。

语法:```html<#assign var_name=value>```示例:```html<#assign user="张三">${user}```输出:```张三```2. `<#if>`:用于条件判断,根据条件表达式返回不同的内容。

语法:```html<#if condition><!-- 条件为真时执行的代码 --><#else><!-- 条件为假时执行的代码 --></#if>```示例:```html<#if user=="张三">欢迎回来,${user}!<#else>欢迎光临,${user}!</#if>```输出:```欢迎回来,张三!```3. `<#list>`:用于遍历集合,如数组、列表、Map等。

语法:```html<#list collection as item><!-- 循环体 --></#list>```示例:```html<#list fruits as fruit>${fruit}</#list>```输出:```苹果香蕉橙子```4. `<#foreach>`:与<#list>类似,用于遍历集合,但可以访问集合中每个元素的索引。

语法:```html<#foreach item in collection><!-- 循环体 --></#foreach>```示例:```html<#foreach fruit in fruits>第${fruit_index}个水果:${fruit}</#foreach>```输出:第1个水果:苹果第2个水果:香蕉第3个水果:橙子```5. `<#macro>`:用于定义可重用的模板片段,类似于函数。

freeMarker中list的两列展示

freeMarker中list的两列展示

freeMarker中list的两列展⽰
前台界⾯中我使⽤freeMarker的机会有很多,⾃然也就会接触下<List>标签,我想⼤家应该都不陌⽣。

<#list attrList as attr>${}</#list>类似的⽤法很多,但是偶尔会⽤到两列的展⽰效果我们改怎么办呢?我们可以根据模型中的int类型的某⼀列,⼀般是⾃动增长的id标识列。

如果你设计的表中没有这样类型的列,那么就不⽤往下看了。

<#list attrList as attr>
<#if attr_index%2 ==0>
<#if attr_index==0>
<tr>
<#else>
</tr><tr>
</#if>
</#if>
<th width="118">${attr.key!}:</th>
<td>${attr.value!}</td>
<#if attr_index==attrList?size-1>
<#if attr_index%2 ==1>
</tr>
<#else>
<th width="118"></th>
<td></td></tr>
</#if>
</#if>
</#list>。

freemarker模板引擎语法

freemarker模板引擎语法

Freemarker模板引擎语法介绍Freemarker是一种模板引擎,它能够将数据模型和模板文件结合起来生成任意文本输出。

在Java应用程序中,它被广泛用于生成HTML网页、电子邮件模板、代码文件等。

本文将深入探讨Freemarker模板引擎的语法,包括变量、表达式、指令、条件语句等。

变量Freemarker模板中的变量可以是任意类型,包括整数、字符串、列表、映射等。

变量可以通过${变量名}的方式在模板中进行引用。

例如:欢迎使用Freemarker模板引擎,我的名字是${name}。

在模板渲染时,${name}将被替换为对应的变量值。

表达式Freemarker支持多种表达式语法,用于在模板中进行运算和判断。

以下是一些常用的表达式示例:•算术表达式:可以进行加减乘除、取余等常见的数值运算。

•比较表达式:用于比较两个变量的大小,例如<、>、==等。

•逻辑表达式:用于进行逻辑与、或、非等运算,例如&&、||、!等。

指令Freemarker还提供了多种指令,用于控制模板文件的行为和输出。

以下是一些常用的指令:•#if指令:用于条件判断,根据条件结果来选择是否输出某个块的内容。

•#list指令:用于遍历列表,可以按照指定规则对列表中的元素进行处理和输出。

•#assign指令:用于给变量赋值,可以在模板中创建新的变量或修改已有变量的值。

•#include指令:用于包含其他模板文件,可以将其他模板文件的内容嵌入到当前模板中。

条件语句Freemarker支持条件语句的编写,可以根据不同的条件来执行不同的操作。

以下是一个示例:<#if score >= 90>优秀<#elseif score >= 80>良好<#elseif score >= 70>中等<#else>不及格</#if>在上述示例中,条件语句根据变量score的值来执行不同的操作,输出不同的结果。

freemarker单元格重复判断

freemarker单元格重复判断

自由标记(Freemarker)是一种模板引擎,用于在模板中生成文本输出。

在自由标记(Freemarker)模板中,我们经常会遇到需要对单元格进行重复判断的情况。

本文将就freemarker单元格重复判断这一主题进行深入探讨,并为您提供相关的个人观点和理解。

让我们来了解一下在自由标记(Freemarker)中如何进行单元格的重复判断。

在模板中,我们通常会使用<#list>标签来遍历一个集合,并对集合中的元素进行操作。

当我们需要对单元格进行重复判断时,可以结合<#if>标签来实现条件判断。

我们可以使用如下的自由标记(Freemarker)代码来判断单元格中的值是否满足特定条件:```<#list items as item><#if item.value gt 10><!-- 执行满足条件时的操作 --><#else><!-- 执行不满足条件时的操作 --></#if></#list>```在上面的代码中,我们使用<#list>标签遍历名为items的集合,并使用<#if>标签对集合中每个元素的value属性进行判断。

当value大于10时,执行满足条件时的操作;否则,执行不满足条件时的操作。

通过这种方式,我们可以在自由标记(Freemarker)中实现对单元格的重复判断。

接下来,让我们探讨一下在实际应用中如何更好地利用freemarker单元格重复判断。

我们可以结合<#list>和<#if>标签,灵活地处理各种条件下的单元格重复判断,从而实现不同情况下的展示和处理。

我们可以将单元格重复判断的逻辑抽象成宏(macro),以便在模板的多个地方重复使用,提高模板的复用性和可维护性。

我们可以结合自由标记(Freemarker)的其他功能,如宏、函数等,进一步扩展和优化单元格重复判断的逻辑,实现更加灵活和强大的模板功能。

freemarker的template用法

freemarker的template用法

freemarker的template用法Freemarker是一个模板引擎,主要用于生成动态内容,如HTML网页、电子邮件、配置文件等。

下面是Freemarker的一些常用模板用法:1. 变量插值:使用`${变量名}`插入变量的值。

例如:```<h1>${title}</h1>```2. 条件判断:使用`<#if>...</#if>`结构来执行条件判断。

例如:```<#if condition>...<#else>...</#if>```3. 循环迭代:使用`<#list>...</#list>`结构来进行循环迭代。

例如:```<#list items as item><li>${item}</li></#list>```4. 定义宏:使用`<#macro>...</#macro>`定义一个宏。

例如:```<#macro greet name>Hello ${name}!</#macro>```5. 调用宏:使用`<@宏名>...</@宏名>`调用一个宏。

例如:```<@greet "John" />```6. 引入外部模板:使用`<#include "模板路径">`引入外部模板。

例如:```<#include "header.ftl">```以上是Freemarker的一些常用模板用法,可以根据实际需求灵活运用。

freemarkerlist标签用法

freemarkerlist标签用法

FreeMarker中的`<#list>`标签用于遍历集合或数组,并生成HTML表格或其他结构。

以下是`<#list>`标签的基本用法:
```html
<#list collection_or_array as item>
<!-- 在这里编写处理每个item的代码-->
</#list>
```
其中,`collection_or_array`是要遍历的集合或数组的名称,`item`是当前遍历到的元素的变量名。

在循环体内,你可以使用`item`变量来访问当前元素的属性或执行操作。

以下是一个示例,演示如何使用`<#list>`标签生成一个HTML表格:
```html
<table>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
<#list users as user>
<tr>
<td>${}</td>
<td>${user.age}</td>
</tr>
</#list>
</table>
```
在上面的示例中,我们假设有一个名为`users`的集合,其中包含多个用户对象。

通过使用`<#list>`标签,我们可以遍历该集合,并为每个用户生成一行表格数据。

在循环体内,我们使用`${}`和`${user.age}`来访问用户对象的相应属性,并将它们插入到HTML表格中。

freemarker 用法

freemarker 用法

freemarker 用法Freemarker 是一种模板引擎,广泛用于JavaWeb 开发中。

它提供了一种将数据模型与视图层分离的方式。

在使用Freemarker 进行开发时,我们首先需要了解一些基本的用法和语法规则。

本文将一步一步回答关于Freemarker 的常见问题,并介绍它的基本用法与功能。

一、什么是Freemarker?Freemarker 是一个模板引擎,它能够根据模板以及给定的数据模型生成最终的文本输出。

它使用简单明了的标记语言,允许开发者通过填充数据模型来动态生成页面内容。

二、如何引入Freemarker?要使用Freemarker,我们首先需要引入它的依赖。

通常情况下,我们可以在Maven 项目的pom.xml 文件中添加以下依赖:xml<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.27-incubating</version></dependency>三、如何配置Freemarker?在Spring Boot 项目中,我们可以使用`@Configuration` 注解来配置Freemarker。

通过`FreeMarkerConfigurer` 类,我们可以设置Freemarker 的一些参数,例如模板文件所在的路径、编码方式等。

java@Configurationpublic class FreemarkerConfig {@Beanpublic FreeMarkerConfigurer freeMarkerConfigurer() {FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();configurer.setTemplateLoaderPath("classpath:/templates");configurer.setDefaultEncoding("UTF-8");return configurer;}}在上述代码中,我们设置了模板所在的路径为classpath:/templates,这意味着我们的模板文件将在项目resources 目录下的templates 文件夹中。

freemarker语法及应用

freemarker语法及应用

freemarker语法及应用Freemarker是一种基于模板的开源Java模板引擎,用于生成动态内容,如HTML网页,电子邮件等。

它的语法简洁且功能强大,可以灵活地处理各种数据类型和逻辑判断。

以下是Freemarker的一些基本语法及应用:1. 变量插值:使用`${variable}`或`#{variable}`语法进行变量的插值。

例如:`${}`会将`user`对象中的`name`属性的值插入到模板中。

2. 判断语句:使用`<#if condition>`和`</#if>`语句来进行条件判断。

可以使用`<#elseif>`和`<#else>`来添加多个条件分支。

例如:```<#if user.age > 18><p>Welcome, ${}. You are an adult.</p><#else><p>Welcome, ${}. You are a minor.</p></#if>```3. 循环语句:使用`<#list>`语句来进行循环迭代。

例如:```<ul><#list users as user><li>${}</li></#list></ul>```4. 宏定义:使用`<#macro>`语句来定义宏。

宏可以接受参数,并在模板中多次调用。

例如:```<#macro printName name><p>Hello, ${name}!</p></#macro><@printName name="Alice" /><@printName name="Bob" />```5. 引入外部模板:使用`<#include>`语句来引入外部模板文件,并在当前模板中使用。

freemarker 语法 list 序号

freemarker 语法 list 序号

freemarker 语法 list 序号Freemarker语法中的List序号功能是指在使用List类型数据时,可以输出每个元素的序号。

在模板引擎中使用Freemarker语法可以方便地进行数据处理和展示。

本文将介绍如何使用Freemarker语法的List序号功能。

首先,在使用List序号功能之前,需要确保已经导入了Freemarker的相关依赖。

接下来,我们将通过一个简单的示例来演示如何使用Freemarker语法的List序号功能。

假设我们有一个包含多个元素的List,我们想要在输出每个元素时同时显示该元素的序号。

以下是一个示例:```freemarker<#assign fruits = ["apple", "banana", "orange", "grape"]><#list fruits as fruit>${(fruit?index + 1)}. ${fruit}</#list>```在上述示例中,我们使用`<#list>`标签遍历了`fruits`列表,并将每个元素赋值给了`fruit`变量。

然后使用`${(fruit?index + 1)}`输出了当前元素的序号,`${fruit}`输出了当前元素本身,并使用`.`进行了分隔。

这样,在模板渲染的过程中,将会输出类似以下的结果:```1. apple2. banana3. orange4. grape```通过这种方式,我们可以在输出List的同时,给每个元素编号。

需要注意的是,序号是从1开始的,因此我们在输出时需要使用`(fruit?index + 1)`。

除了这种基本的用法外,Freemarker还提供了更多的List序号相关的功能。

例如,可以使用`?index_is_even`和`?index_is_odd`判断当前元素的序号是奇数还是偶数,以便在不同的情况下进行不同的输出样式设置。

ftl list循环标题

ftl list循环标题

ftl list循环标题
"ftl list"是指FreeMarker模板语言中的列表循环指令,用于
在模板中遍历并显示列表中的元素。

在使用"ftl list"循环标题时,我们需要考虑以下几个方面:
1. 语法和用法,在FreeMarker模板中,我们使用<#list>指令
来开始一个列表循环,然后使用<#items as item>来定义列表中的
元素,并在循环体内使用${item}来引用每个元素。

我们需要确保语
法正确,循环体内的内容能够正确地显示列表中的元素。

2. 数据准备,在使用"ftl list"循环标题之前,我们需要确保
要循环的列表数据已经准备好,并且能够被模板正确地引用和显示。

这可能涉及到从后端获取数据,对数据进行处理和格式化等步骤。

3. 循环控制,除了简单地遍历列表中的元素外,有时我们还需
要在循环中进行一些控制,比如条件判断、跳出循环等操作。

我们
需要确保循环的控制逻辑能够正确地实现我们的需求。

4. 样式和布局,最后,我们还需要考虑循环标题在页面中的样
式和布局问题。

确保循环的标题能够以合适的方式显示在页面上,
并且能够适配不同的设备和浏览器。

总之,在使用"ftl list"循环标题时,我们需要关注语法和用法、数据准备、循环控制以及样式和布局等方面,以确保循环标题能够在模板中正确地显示并且符合我们的需求。

freemarker中的list

freemarker中的list

freemarker中的list freemarker list (长度,遍历,下标,嵌套,排序)1. freemarker获取list的size :JavaArrayList<String> list = new ArrayList<String>();Freemaker${list?size}2. list的遍历:<#list animals as being><tr><td>${}${being.price}<td></tr></#list>3. 遍历MAP<#list map?keys as k><option value="${k}">${map[k]}</option></#list>4.list遍历中的下标序号:_index是list的⼀个属性<#list list as a>${a_index}</#list>5.取LIST中第i个元素的值${list[i]}嵌套时前⾯要有括号,如下,将字符串变成list,然后取第i个元素的值${(str?split(","))[i]}6. list的嵌套:<#list jsskList as jsskVO><#list kcList as kcVO><#if kcVO.kch=jsskVO.kch> (kcVO⾥有编号和名称,⽽jsskVO⾥只有编号) ${kcVO.kcm}</#if></#list></#list>7. list排序:升序 .sort_by()<#list list?sort_by("字段") as x></#list>降序 .sort_by()?reverse<#list list?sort_by("字段")?reverse as x></#list>8.item_has_next,size使⽤:<#list userList as user><#if !user_has_next>共有${userList?size}最后⼀个⽤户是:${erName}</#if></#list>。

ftl模板 嵌套循环写法

ftl模板 嵌套循环写法

ftl模板嵌套循环写法在FTL(FreeMarker Template Language)模板中,嵌套循环是一种常见的写法,可以用于处理复杂的数据结构和多层嵌套的数据。

下面我将从多个角度来介绍FTL模板中嵌套循环的写法。

首先,假设我们有一个包含多个列表的数据结构,我们可以使用嵌套循环来遍历这个数据结构并输出相应的内容。

在FTL中,可以使用<#list>指令和<#items as>指令来进行循环遍历。

例如,我们有一个包含多个班级的列表,每个班级又包含多个学生的列表,我们可以使用嵌套的<#list>指令来实现:ftl.<#list classes as class>。

Class: ${}。

<#list class.students as student>。

Student: ${}。

</#list>。

</#list>。

在上面的例子中,我们首先使用<#list>指令遍历班级列表,然后在内部使用<#list>指令遍历每个班级中的学生列表,从而实现了嵌套循环的效果。

除了<#list>指令外,还可以使用<#items as>指令来实现嵌套循环。

例如,我们有一个包含多个部门的列表,每个部门又包含多个员工的列表,我们可以使用<#items as>指令来实现嵌套循环:ftl.<#items as department>。

Department: ${}。

<#items as employee>。

Employee: ${}。

</#items>。

</#items>。

在这个例子中,我们使用<#items as>指令来遍历部门列表和员工列表,实现了嵌套循环的效果。

总的来说,在FTL模板中,嵌套循环的写法可以通过<#list>指令和<#items as>指令来实现,可以灵活处理多层嵌套的数据结构,从而实现复杂的模板逻辑。

freemarker遍历数字、数组、List集合、Map集合

freemarker遍历数字、数组、List集合、Map集合

freemarker遍历数字、数组、List集合、Map集合freemarker遍历数字、数组、List集合、Map集合遍历数字:<#list 1..10 as n><span>${n} </span></#list><br>遍历数字-后台传值num:<#list 1..num as nn><span>${nn} </span></#list><br>遍历数组:<#list [10,20,50,100] as n><span>${n}</span></#list><br>遍历List集合(此处List中数据是对象,有size属性):<#list myList as d><p>size值:${d.size}</p></#list>遍历map集合:<#list myMap?keys as key><p>key: ${key}, value: ${myMap["${key}"]}</p></#list>效果图:复杂遍历<#list listMap as map><#list map?keys as itemKey>主键:${itemKey}<#list map[itemKey] as hashMap><#list hashMap?keys as itemKey>${hashMap[itemKey]}</#list></#list></#list></#list>。

freemarker高级语法

freemarker高级语法

freemarker高级语法Freemarker高级语法Freemarker是一种模板引擎,它允许开发人员通过模板文件来生成动态内容。

在Freemarker中,除了基本的模板语法外,还有一些高级语法可以帮助我们更灵活地处理数据和控制模板的输出。

一、条件语句在模板中经常需要根据条件来确定是否输出某段内容。

Freemarker 提供了if-else语句来实现条件判断。

例如:```<#if user.age > 18>成年人<#else>未成年人</#if>```在上面的例子中,根据用户的年龄来判断是输出"成年人"还是"未成年人"。

二、循环语句循环语句是在模板中重复执行某段代码的常用语法。

Freemarker提供了多种循环语句,如list、foreach等。

例如:```<#list users as user>${}的年龄是${user.age}岁</#list>```在上面的例子中,通过循环遍历一个用户列表,输出每个用户的姓名和年龄。

三、宏宏是一种可以重复使用的代码块,并且可以传递参数。

在Freemarker中,可以使用macro关键字定义宏。

例如:```<#macro greet name>你好,${name}!</#macro><@greet name="张三" /><@greet name="李四" />```在上面的例子中,定义了一个名为greet的宏,接受一个名为name的参数。

然后通过调用宏,并传入不同的参数来输出不同的问候语。

四、局部变量有时候我们需要在模板中定义一些临时变量,Freemarker提供了var关键字来实现这个功能。

例如:```<#list users as user><#var age = user.age + 1>${}明年将会${age}岁</#list>```在上面的例子中,通过var关键字定义了一个名为age的局部变量,并将其赋值为user.age + 1,然后输出用户的姓名和明年的年龄。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Freem arker中如何遍历List摘要:在Freemarker应用中经常会遍历List获取需要的数据,并对需要的数据进行排序加工后呈现给用户。

那么在Freemarker中如何遍历List,并对List中数据进行适当的排序呢?
通过下文的介绍,相信您一定会找到答案。

一、 Freemarker中list指令简单介绍
要想在Freemarker中遍历list,必须通过使用list指令,即<#list sequence as item>…</ #list>
sequence是集合(collection)的表达式,item是循环变量的名字,不能是表达式。

当在遍历sequence时,会将遍历变量的值保存到item中。

举个例子说明吧:
<#list userList as user>

</#list>
userList中封装了很多个User对象,我们在遍历userList时候,会将遍历的User对象的值,保存到上述的user变量中。

那么在取值时,我们可以通过${erName }来获取User 对象的userName属性值。

List指令还隐含了两个循环变量:
item_index:当前迭代项在所有迭代项中的位置,是数字值。

item_has_next:用于判断当前迭代项是否是所有迭代项中的最后一项。

注意:在使用上述两个循环变量时,一定要将item换成你自己定义的循环变量名,item其实就是前缀罢了。

例如,如果你使用<# list list as l>..</#list>定义,那么就要使用l_index,l_has_next。

在循环过程中,如果您想跳出循环,那么可以使用结合break指令,即<#break>来完成。

二、 Freemarker中对List进行排序
通常我们的排序操作都是通过DAO层来实现的,如果我们想随时更改我们的排序,那么就必须修改我们的DAO层代码,确实不方便。

但Freemarker为我们提供了这样的排序方法,解决了这个问题。

1. sort升序排序函数
sort对序列(sequence)进行排序,要求序列中的变量必须是:字符串(按首字母排序),数字,日期值。

<#list list?sort as l>…</#list>
2. sort_by函数
sort_by有一个参数,该参数用于指定想要排序的子变量,排序是按照变量对应的值进行排序,如:
<#list userList?sort_by(“age”) as user>…</#list>
age是User对象的属性,排序是按age的值进行的。

3. reverse降序排序函数
<#list list? reverse as l>…</#list>
reverse使用同sort相同。

reverse还可以同sort_by一起使用
如:想让用户按年龄降序排序,那么可以这个样写<#list userList?sort_by(“age”)?re verse as user>…</#list>
三、 Freemarker如何遍历List实例应用
通过上面的介绍,相信您已经对Freemarker如何遍历List有了了解,那么我们就废话少说,开始做一个应用吧。

好了,到这里程序就结束了,您可以运行ClientTest类来查看输出结果了。

相关文档
最新文档