zoukankan      html  css  js  c++  java
  • struts2框架之OGNL表达式概述(在代码中使用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. 测试的代码(在代码中使用OGNL表达式)
        // 访问对象的方法
        @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", "美美"); // 获取对象的方法
        //要获取值,需要在表达式的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");
        //向值栈中存储对象,就不能通过put方法了,使用setRoot()方法进行存储 context.setRoot(c);
        //要获取值,直接写属性名就ok String name = (String) Ognl.getValue("cust_name", context, context.getRoot()); System.out.println(name); }
     
  • 相关阅读:
    js 与 asp.net 验证控件冲突解决方法
    图片处理(给图片加水印)
    JS打开窗口
    ASP.NET编程中的十大技巧
    【ASP.NET】FCKeditor 2.6 + Asp.Net 设置
    XML文件设置树形结构(无限级)原创
    利用vs.net快速开发windows服务(c#) (转载)
    C#反射 学习
    C#解压RAR压缩文件(转载测试通过)
    SQL显示字段信息
  • 原文地址:https://www.cnblogs.com/wyhluckdog/p/10108907.html
Copyright © 2011-2022 走看看