Strust2-OGNL表达式

  • OGNL(Object Graphic Navagation Language [对象图导航语言]的缩写)。
  • OGNL一般结合struts2标签一同使用。主要符号#、%、$。当Struts2接受一个请求时,会迅速创建ActionContext,ValueStack,action 。然后把action存放进ValueStack,所以action的实例变量可以被OGNL访问。
  • OGNL主要功能就是数据转移和类型转换。

    1.默认符号:

    通常我们在OGNL表达式里直接写上属性的名称即可访问root变量里对象的属性,搜索顺序是从栈顶对象开始寻找,如果栈顶对象不存在该属性,就会从第二个对象寻找,如果没有找到就从第三个对象寻找,依次往下访问,直到找到为止。 大家注意: Struts2中,OGNL表达式需要配合Struts标签才可以使用。如:<s:property value="name"/>

    2.${}--访问堆栈的对象:

    由于ValueStack(值栈)是Struts 2中OGNL的根对象,如果用户需要访问值栈中的对象,在JSP页面可以直接通过下面的EL表达式访问ValueStack(值栈)中对象的属性: ${foo} //获得值栈中某个对象的foo属性

    3.#{}--访问ActionContext里面的内容:

    4.%{}--访问对象中的值,一般内嵌的内容作为表达式去运算而不是当做字符:

    下面用一个例子程序详细说明ognl表达式的用法


    附上以上代码的运行效果:

    Strust2-OGNL表达式_第1张图片Strust2-OGNL表达式_第2张图片Strust2-OGNL表达式_第3张图片


你可能感兴趣的:(strust2)