什么是OGNL?
OGNL 最初是为了能够使用对象的属性名来建立 UI 组件 (component) 和 控制器 (controllers) 之间的联系,简单来说就是:视图 与 控制器 之间数据的联系。后来为了应付更加复杂的数据关系,Drew Davidson 发明了一个被他称为 KVCL(Key-Value Coding Language) 的语言。 Luke 参与进来后,用 ANTLR 来实现了该语言,并给它取了这个新名字,他后来又使用 JavaCC 重新实现了该语言。目前 OGNL 由 Drew 来负责维护。目前很多项目中都用到了 OGNL,其中不乏为大家所熟知的,例如几个流行的 web 应用框架:WebWork,Tapestry 等。
OGNL:Object Graph Navigation Language 对象导航图语言
开源项目,取代页面中Java脚本,简化数据访问
和EL同属于表达式语言,但功能更为强大
让我们通过简单一致的表达式语法来读取和设置Java对象的属性值,调用对象的方法,遍历整个对象的结构图,实现字段类型转换等功能。
将表单或Struts 2标签与特定的Java数据绑定起来,用来将数据移入、移出框架
类型转换
数据进入和流出框架,在页面数据的字符串类型和Java数据类型之间进行转换
基于HTTP协议的Web应用中
客户端请求的所有内容都以文本编码方式传输到服务器端,服务器端的编程语言却有着丰富的数据类型
Struts 2提供了多种内置类型转换器,自动对客户端传来的数据进行类型转换
实例:
Struts.xml
<package name="PatternAction" namespace="/" extends="struts-default"> <action name="*_*" class="day05pattern.{1}" method="{2}"> <result name="{2}">/{1}/{2}.jsp</result> </action>
day05pattern类
jsp
strust-list.xml
之后必须在Struts.xml文件里写入
<include file="strust-list.xml"></include>
否则无法会无法找到页面