struts2框架之OGNL表达式概述

Posted wyhluckydog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2框架之OGNL表达式概述相关的知识,希望对你有一定的参考价值。

1. OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写
    * 所谓对象图,即以任意一个对象为根,通过OGNL可以访问与这个对象关联的其它对象
    * 通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性

2. Struts2框架使用OGNL作为默认的表达式语言(OGNL可以在struts2框架中使用,也可以单独使用)表达式语言用于获取jsp页面数据
    * OGNL是一种比EL强大很多倍的语言
    * xwork提供 OGNL表达式
    * ognl-3.0.5.jar
struts2已经将OGNL合并到它的里面。
3. OGNL 提供五大类功能
   * 支持对象方法调用
   * 支持类静态的方法调用和值访问
   * 访问OGNL上下文(OGNL context)和ActionContext
   * 支持赋值操作和表达式串联
   * 操作集合对象
4. 测试的代码
    // 访问对象的方法
    @Test
    public void run1() throws OgnlException{
    //使用ongl必须先要获取ognl的上下文对象 OgnlContext context = new OgnlContext(); // 获取对象的方法 Object obj = Ognl.getValue("‘helloworld‘.length()", context, context.getRoot());//getRoot()为值栈 System.out.println(obj); } // 获取OGNL上下文件的对象 @Test public void run3() throws OgnlException{ OgnlContext context = new OgnlContext(); context.put("name", "美美"); // 获取对象的方法 Object obj = Ognl.getValue("#name", context, context.getRoot()); System.out.println(obj); } // 从root栈获取值 @Test public void demo3() throws OgnlException{ OgnlContext context = new OgnlContext(); Customer c = new Customer(); c.setCust_name("haha"); context.setRoot(c); String name = (String) Ognl.getValue("cust_name", context, context.getRoot()); System.out.println(name); }
 


以上是关于struts2框架之OGNL表达式概述的主要内容,如果未能解决你的问题,请参考以下文章

框架学习之Struts2---OGNL和值栈

技术分析之OGNL表达式概述

Struts2框架使用之ognl表达式获取值

Struts2之 OGNL表达式和值栈

ssh框架-Struts2

[ SSH框架 ] Struts2框架学习之三(OGNl和ValueStack值栈学习)