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,其中这个域对象又包含两部分,分别为ROOT和Context,ROOT里面可以放置任何对象,而context里面需要放置一个map。示意图和例程代码如下:
第三步:基础语法演示
1.基本取值方法:
取出ROOT中对象属性值,root为一个栈结果,默认从栈顶的对象的属性中查找。
取出context中map的中的值,其中要加入关键符号#+键名
2.赋值语法:ROOT中赋值比较简单,直接属性=“ value”,context中依然使用关键符号#+键名,特别注意:
OGNL表达式支持连续的表达式输入,但是返回值为第一个表达式中的值。
3.调用方法:ROOT中可以直接调用位于栈顶的对象中的方法,context中依然需要通过#+键名的方式调用。
4.调用静态方法:OGNL表达式可以调用jdk提供的API静态函数或者其他自定义类中的函数,方法为@+完整类名[email protected]方法
5.创建对象(List,Map):
创建List对象:直接使用{ }的形式,还可以创建完成后直接调用list的方法
创建map对象:使用#{键:值}的形式,可以直接创建完取值。
总结:OGNL是一个方便的取值存值的方法,struts2用来作为获取参数的方法。