内置插件对序列
一、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的对象封装机制使得Java对象可以通过插件的方式呈现给模板,增强了灵活性和扩展性。 - **抽象表示**:支持通过接口的方式来表示对象,减少模板开发者面对的技术细节,提高重用性。 ...
7. **国际化与本地化支持**:Struts 2 内置了对多语言的支持,方便开发面向全球用户的 Web 应用。 8. **主题与皮肤**:通过主题和皮肤,开发者可以轻松地改变应用的外观和布局,提供一致的用户体验。 在 `lib` ...
Struts2拥有丰富的插件库,如Tiles、Freemarker、i18n等,可以方便地扩展其功能。这些插件通过Struts2的插件机制集成到项目中。 10. **Struts2与其他技术的集成** Struts2可以很好地与Spring、Hibernate等其他...
4. **JSON 支持**:Nutz 内置了快速高效的JSON序列化和反序列化工具,方便与前后端交互,进行数据交换。 5. **AJAX 支持**:Nutz 提供了与JavaScript库(如jQuery)配合的插件,使得异步请求处理更加便捷,增强了...
8. **JSON处理**:Jackson和Gson等库使得JSON数据的序列化和反序列化变得简单易行。 9. **多线程**:Java内置的并发工具类和ExecutorService使得多线程编程不再复杂,同时提供了线程安全的数据结构。 10. **模块化...
6. **json-lib-2.1.jar**:这是一个JSON(JavaScript Object Notation)处理库,用于将Java对象转换为JSON格式,或从JSON字符串反序列化回Java对象。在Struts2中,这个库可以方便地处理JSON数据交换,支持Web服务和...
Nutz框架内置了对Json的支持,可以方便地进行Json序列化和反序列化,帮助开发者快速处理前后端的数据交互。 6. **Web应用开发**: Nutz不仅限于Web应用,但其MVC模块特别适用于构建Web项目。它支持RESTful API设计...
这些流行的IDE都有内置的代码生成工具,可以快速生成构造函数、getter和setter,甚至整个类的骨架代码,极大地提高了开发速度。 7. **DSL(Domain Specific Language)**: 创建特定领域的语言,可以用于描述业务...
对于第三方项目的整合,如 WebSockets 提供实时通信,Spring Data 支持多种数据库操作,Spring Batch 处理批量数据,FreeMarker 是一个模板引擎,ActiveMQ 是消息中间件,Apache Kafka 是分布式流处理平台,Swagger ...
- **json-lib.jar**:用于处理JSON数据,Struts2通过它支持JSON数据的序列化和反序列化。 - **oro.jar**:一个正则表达式处理库,虽然不是必须的,但有时会被其他依赖所引用。 - **isslext.jar**:这个库的具体作用...
1. **第一种方式**:通过IDEA或Eclipse等集成开发环境的Spring Initializr插件创建Spring Boot项目。 2. **第二种方式**:访问Spring官方网站提供的Spring Initializr在线工具,选择项目模板和依赖后生成pom.xml文件...
JSON格式的数据可以直接被JavaScript对象表示,无需额外的解析或序列化过程,这在jQuery中尤其方便,因为它允许我们轻松地进行AJAX请求和响应数据的处理。 Struts2是Java企业级应用中流行的MVC(Model-View-...
JFinal内置了对ActiveRecord的支持,使得数据库开发变得异常快速。 - **自动加载修改后的Java文件**:JFinal支持自动检测并加载已修改的Java文件,这大大提高了开发效率,因为开发者无需频繁重启Web服务器即可看到...
- 支持表之间的关联操作,包括一对多、多对一等多种关系。 **5.10 复合主键** - 支持复合主键的使用,方便处理具有复杂索引结构的数据表。 **5.11 Oracle 支持** - 提供了针对 Oracle 数据库的特殊支持,包括序列...
`spring-boot-starter-parent` 是一个父 POM 项目,它定义了一系列默认的依赖项版本和构建插件设置,可以简化 Maven 项目的配置。 **6.5 Spring Boot 打成的 Jar 和普通的 Jar 有什么区别?** Spring Boot 创建的 ...
1. **Maven插件**:Java开发中常用的构建工具Maven有很多内置和第三方插件支持codegen,如`maven-compiler-plugin`可以用于编译Java源代码,而`maven-jaxb2-plugin`则能根据XML Schema文件生成Java类。 2. **...
1. **创建 Maven 项目**:首先,我们需要一个基于 Maven 的项目结构,这可以通过 IDE(如 IntelliJ IDEA 或 Eclipse)的 Maven 插件创建,或者手动创建符合 Maven 标准的目录结构(src/main/java, src/main/...
IntelliJ IDEA以其强大的代码补全、代码分析和重构功能而著名,对于Spring Boot项目的支持尤为出色,提供了丰富的内置工具和插件,能够帮助开发者高效地创建、运行和调试Spring Boot应用。 【HTML】 HTML...