OGNL基础语法和与struts2的结合使用。

一.首先了解OGNL的概念

OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,是一种类似与EL表达式的语言,但是比EL

表达式功能强大许多,比如可以进行赋值操作,调用函数操作,创造集合等。由于OGNL的强大,struts2原生引入了OGNL的用法,在从表单获取参数

时很好的使用了OGNL作为原理,所以理解OGNL表达式,能更好得理解struts获取表单三种方式的原理。

二.OGNL的基础使用方法

第一步:导包,由于struts2内置了OGNL,在使用struts2时已经导入了OGNL所需要的包(ognl-3.0.6.jar),故不需额外导入。

第二步:代码准备,OGNL包含一个域对象:OGNLContext,其中这个域对象又包含两部分,分别为ROOTContext,ROOT里面可以放置任何对象,而context里面需要放置一个map。示意图和例程代码如下:

OGNL基础语法和与struts2的结合使用。

OGNL基础语法和与struts2的结合使用。

第三步:基础语法演示

1.基本取值方法:

取出ROOT中对象属性值,root为一个栈结果,默认从栈顶的对象的属性中查找。 

OGNL基础语法和与struts2的结合使用。

取出context中map的中的值,其中要加入关键符号#+键名

OGNL基础语法和与struts2的结合使用。

2.赋值语法:ROOT中赋值比较简单,直接属性=“ value”,context中依然使用关键符号#+键名,特别注意:

OGNL表达式支持连续的表达式输入,但是返回值为第一个表达式中的值。

OGNL基础语法和与struts2的结合使用。

3.调用方法:ROOT中可以直接调用位于栈顶的对象中的方法,context中依然需要通过#+键名的方式调用。

OGNL基础语法和与struts2的结合使用。

4.调用静态方法:OGNL表达式可以调用jdk提供的API静态函数或者其他自定义类中的函数,方法为@+完整类名[email protected]方法

OGNL基础语法和与struts2的结合使用。

5.创建对象(List,Map)

创建List对象:直接使用{  }的形式,还可以创建完成后直接调用list的方法

创建map对象:使用#{键:值}的形式,可以直接创建完取值。

OGNL基础语法和与struts2的结合使用。

总结:OGNL是一个方便的取值存值的方法,struts2用来作为获取参数的方法。