`
yanyan_zhl
  • 浏览: 5147 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

FreeMarker内置插件对序列

阅读更多
内置插件对序列

一、first:序列的第一个值,如果序列为空,模板处理时会抛异常

         <#assign maple=[‘hhh’,’bbb’,’ccc’,’ddd’,’eee’,’ttt’,’hhh’]>

         ${maple?first}将输出hhh

二、last:序列的最后一个值,如果序列为空,也会抛异常

         ${maple?last}将输出hhh

三、seq_contains:判断一个序列中是否存在某个值(存在于FreeMarker2.3.1及以后版本中)

         这个内置插件前面加一个前缀seq_用来区分在string操作中的contains

         这里seq_contains返回的是Boolean,不能直接使用${}将其输出,如:${maple?seq_contains(‘ccc’)},这个写法是错误,但如果你一定要输出的话,可以将Boolean转换为string,即:${maple?seq_contains(‘ccc’)?string}

四、seq_index_of:这个内置插件存在于FreeMarker23.1中,返回的是指定值在序列中的索引,前面加上seq_前缀是用于区分string中的index_of内置插件。

         返回的是第一次出现指定值在序列中的索引,如果没有匹配的值返回-1

         如:${maple?seq_index_of(‘ddd’)}将返回3

五、seq_last_index_of:序列中最后一次出现某个值的索引,如果没有返回-1

         ${maple?seq_last_index_of(‘hhh’)}

六、reverse:反序

七、size序列的大小

八、sort:排序,返回升序排列。使用语言环境的特定词汇排序

九、sort_by:根据制定的内容排序

         <#assign ls=[

           {"name":"whale", "weight":2000},
          {"name":"Barbara", "weight":53},

          {"name":"zeppelin", "weight":-200},

          {"name":"aardvark", "weight":30},

          {"name":"beetroot", "weight":0.3}

         ]>

                   <#list ls?sort_by(‘name’) as i>

           ${i.name}:${i.weight}

                   <#list?>

                   <#list ls?sort_by(‘weight’) as i>

                            ${i.name}:${i.weight}

                   </#list>

十、chunk:块。

         在FreeMarker2.3.3中存在

         这个内置插件是对序列进行分割,建立多个序列,大小根据参数断定。

         chunk有两个参数chunk(length,fill);

         第一个参数表示建立小序列的大小,如果不书写第二个参数,最后一个序列大长度可能小于这个值

         如果书写第二个参数,最后一个序列的程度若小于length,就会使用该参数进行填充。

         如:

                   <#assign maple=[‘hhh’,’bbb’,’ccc’,’ddd’,’eee’,’ttt’,’hhh’]>

                   <#list maple?chunk(3) as row>

                            <#list row as cell>

                                     ${cell}

                            </#list>

                   </#list>



                   <#list maple?chunk(3,’-’) as row>

                            <#list row as cell>

                                     ${cell}

                            </#list>

                   </#list>

输出结果:

                 

       hhh

       bbb

       ccc

       ddd

       eee

       ttt

       hhh



       hhh

       bbb

       ccc

       ddd

       eee

       ttt

       hhh
分享到:
评论

相关推荐

    FreeMarker

    - **插件式对象封装**:FreeMarker的对象封装机制使得Java对象可以通过插件的方式呈现给模板,增强了灵活性和扩展性。 - **抽象表示**:支持通过接口的方式来表示对象,减少模板开发者面对的技术细节,提高重用性。 ...

    struts 2.3.3

    7. **国际化与本地化支持**:Struts 2 内置了对多语言的支持,方便开发面向全球用户的 Web 应用。 8. **主题与皮肤**:通过主题和皮肤,开发者可以轻松地改变应用的外观和布局,提供一致的用户体验。 在 `lib` ...

    Struts2 基础知识

    Struts2拥有丰富的插件库,如Tiles、Freemarker、i18n等,可以方便地扩展其功能。这些插件通过Struts2的插件机制集成到项目中。 10. **Struts2与其他技术的集成** Struts2可以很好地与Spring、Hibernate等其他...

    nutz-1.a.25_jdoc.zip

    4. **JSON 支持**:Nutz 内置了快速高效的JSON序列化和反序列化工具,方便与前后端交互,进行数据交换。 5. **AJAX 支持**:Nutz 提供了与JavaScript库(如jQuery)配合的插件,使得异步请求处理更加便捷,增强了...

    Java简化开发套路集.zip

    8. **JSON处理**:Jackson和Gson等库使得JSON数据的序列化和反序列化变得简单易行。 9. **多线程**:Java内置的并发工具类和ExecutorService使得多线程编程不再复杂,同时提供了线程安全的数据结构。 10. **模块化...

    struts的几个jar包

    6. **json-lib-2.1.jar**:这是一个JSON(JavaScript Object Notation)处理库,用于将Java对象转换为JSON格式,或从JSON字符串反序列化回Java对象。在Struts2中,这个库可以方便地处理JSON数据交换,支持Web服务和...

    nutz-master.zip

    Nutz框架内置了对Json的支持,可以方便地进行Json序列化和反序列化,帮助开发者快速处理前后端的数据交互。 6. **Web应用开发**: Nutz不仅限于Web应用,但其MVC模块特别适用于构建Web项目。它支持RESTful API设计...

    java代码自动生成.txt数据文件

    这些流行的IDE都有内置的代码生成工具,可以快速生成构造函数、getter和setter,甚至整个类的骨架代码,极大地提高了开发速度。 7. **DSL(Domain Specific Language)**: 创建特定领域的语言,可以用于描述业务...

    SpringBoot面试题(2020最新版)-重点.pdf

    对于第三方项目的整合,如 WebSockets 提供实时通信,Spring Data 支持多种数据库操作,Spring Batch 处理批量数据,FreeMarker 是一个模板引擎,ActiveMQ 是消息中间件,Apache Kafka 是分布式流处理平台,Swagger ...

    struts2包介绍

    - **json-lib.jar**:用于处理JSON数据,Struts2通过它支持JSON数据的序列化和反序列化。 - **oro.jar**:一个正则表达式处理库,虽然不是必须的,但有时会被其他依赖所引用。 - **isslext.jar**:这个库的具体作用...

    超详细的SpringBoot框架入门教程 Spring Boot框架快速入门教程以大量示例讲解了Spring Boot在各类情境

    1. **第一种方式**:通过IDEA或Eclipse等集成开发环境的Spring Initializr插件创建Spring Boot项目。 2. **第二种方式**:访问Spring官方网站提供的Spring Initializr在线工具,选择项目模板和依赖后生成pom.xml文件...

    jquery+json+sturts2

    JSON格式的数据可以直接被JavaScript对象表示,无需额外的解析或序列化过程,这在jQuery中尤其方便,因为它允许我们轻松地进行AJAX请求和响应数据的处理。 Struts2是Java企业级应用中流行的MVC(Model-View-...

    JFinalDemo流程

    JFinal内置了对ActiveRecord的支持,使得数据库开发变得异常快速。 - **自动加载修改后的Java文件**:JFinal支持自动检测并加载已修改的Java文件,这大大提高了开发效率,因为开发者无需频繁重启Web服务器即可看到...

    jfinal pdf文档

    - 支持表之间的关联操作,包括一对多、多对一等多种关系。 **5.10 复合主键** - 支持复合主键的使用,方便处理具有复杂索引结构的数据表。 **5.11 Oracle 支持** - 提供了针对 Oracle 数据库的特殊支持,包括序列...

    Spring Boot面试题(2022最新版)-重点

    `spring-boot-starter-parent` 是一个父 POM 项目,它定义了一系列默认的依赖项版本和构建插件设置,可以简化 Maven 项目的配置。 **6.5 Spring Boot 打成的 Jar 和普通的 Jar 有什么区别?** Spring Boot 创建的 ...

    codegen

    1. **Maven插件**:Java开发中常用的构建工具Maven有很多内置和第三方插件支持codegen,如`maven-compiler-plugin`可以用于编译Java源代码,而`maven-jaxb2-plugin`则能根据XML Schema文件生成Java类。 2. **...

    Spring MVC实例

    1. **创建 Maven 项目**:首先,我们需要一个基于 Maven 的项目结构,这可以通过 IDE(如 IntelliJ IDEA 或 Eclipse)的 Maven 插件创建,或者手动创建符合 Maven 标准的目录结构(src/main/java, src/main/...

    SpringBoot_IntelliJ

    IntelliJ IDEA以其强大的代码补全、代码分析和重构功能而著名,对于Spring Boot项目的支持尤为出色,提供了丰富的内置工具和插件,能够帮助开发者高效地创建、运行和调试Spring Boot应用。 【HTML】 HTML...

Global site tag (gtag.js) - Google Analytics