FreeMarker与OGNL:Struts2框架中的核心模板语言

需积分: 9 1 下载量 141 浏览量 更新于2024-08-18 收藏 1.47MB PPT 举报
"OGNL是Object-Graph Navigation Language的缩写,是一种强大的表达式语言,常用于Struts2框架中,用于获取和设置Java对象的属性。本讲主要介绍OGNL在Struts2中的基本用法,包括对集合的处理,如list和map的使用,以及如何进行查找和过滤操作。此外,还将提及FreeMarker模板引擎的相关特性,它是Struts2常用的一种视图技术。" 在Struts2框架中,OGNL是核心表达式语言,它允许开发者以简洁的语句访问和修改Java对象的属性。对于集合处理,OGNL支持对list和map的操作。例如,你可以使用索引来访问list中的元素,如`list[0]`,或者通过键来访问map中的值,如`map['key']`。同时,OGNL还提供了查找和过滤的功能,使得可以在集合中根据特定条件筛选出需要的数据。 查找功能可以通过OGNL表达式实现,例如,如果你有一个User对象列表,你可以找到名为"John"的用户,表达式可能如下:`list.find{it.name == 'John'}`。过滤功能则允许你创建新的集合,只包含满足特定条件的元素,如:`list.filter{it.age > 18}`,这将返回一个只包含年龄大于18的用户的列表。 FreeMarker是一个强大的模板引擎,它的目标是生成各种类型的文本,如HTML、XML等。它被设计为轻量级且易于嵌入到各种产品中,不需要依赖Servlet环境。FreeMarker的模板语言提供了一系列指令,如`include`、`if/elseif/else`和循环结构,使得模板开发者可以灵活控制输出内容。 FreeMarker的模板语言允许在任何地方使用复杂表达式,可以创建和改变变量,甚至定义命名的宏,这些宏可以有位置参数和嵌套内容。此外,FreeMarker支持命名空间,避免了宏库中的命名冲突,并能方便地组织和重用宏。它还内置了输出转换功能,如HTML转义,以确保输出的安全性。 FreeMarker的数据模型是通用的,它不直接反射Java对象,而是通过插件式的对象封装机制。这意味着模板开发者可以使用抽象的方式(如JavaBean、XML文档、SQL查询结果集)来表示数据,无需关心底层实现细节。FreeMarker特别适合Web应用,它内置处理Web相关任务的结构,如HTML转义,并且可以作为JSP的替代,用于MVC模式的分离设计,有利于页面设计员和程序员的工作协同。 FreeMarker的智能国际化和本地化支持使得应用可以根据不同的地域和语言轻松调整内容,提高了应用的全球化适应性。开发者可以定义资源包,方便地切换不同语言的文本。 OGNL与FreeMarker是Struts2中两个关键的组件,它们共同协作,为开发者提供了强大而灵活的视图层控制,简化了Web应用的开发过程。通过熟练掌握OGNL表达式和FreeMarker模板语言,可以极大地提高开发效率和代码的可读性。