OGNL表达式概述

1. OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写
* 所谓对象图,即以任意一个对象为根,通过OGNL可以访问与这个对象关联的其它对象
* 通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性 2. Struts2框架使用OGNL作为默认的表达式语言
* OGNL是一种比EL强大很多倍的语言
* xwork提供 OGNL表达式
* ognl-3.0.5.jar 3. OGNL 提供五大类功能
* 支持对象方法调用
* 支持类静态的方法调用和值访问
* 访问OGNL上下文(OGNL context)和ActionContext
* 支持赋值操作和表达式串联
* 操作集合对象 4. 测试的代码
    // 访问对象的方法
@Test
public void run1() throws OgnlException{
OgnlContext context = new OgnlContext();
// 获取对象的方法
Object obj = Ognl.getValue("'helloworld'.length()", context, context.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表达式

1. Struts2引入了OGNL表达式,主要是在JSP页面中获取值栈中的值
2. 具体在Struts2中怎么使用呢?如下步骤
* 需要先引入Struts2的标签库
> <%@ taglib prefix="s" uri="/struts-tags" %> * 使用Struts2提供的标签中的标签
> <s:property value="OGNL表达式"/> 3. 在JSP页面使用OGNL表达式
* 访问对象方法
<s:property value="'hello'.length()"/>

最新文章

  1. Ember入门指南——教程目录
  2. Notepad++ 开启「切分窗口」同时检视、比对两份文件
  3. HDU 5592
  4. android xml文件
  5. hdu3724Encoded Barcodes(Trie tree)
  6. CDH 无法查看history log
  7. Maven创建项目: Failed to execute goal org.apache.maven.plugin( mvn archetype:create)
  8. java特权制度设计篇
  9. 天兔(Lepus)监控操作系统(OS)安装配置
  10. Jacob工具类使用文件互转服务 word转html html转excel word转pdf excel转pdf ppt转pdf
  11. LR12集合点设置和多个负载生成器策略
  12. TZOJ 3711 浪漫自习(最大流)
  13. win10怎么更改切换输入法按键 切换输入法与Win7一样(Ctrl + 空格)
  14. std::lock_guard
  15. 《你的SSD可以用100年,你造吗?》总结
  16. 《Drools7.0.0.Final规则引擎教程》Springboot+规则重新加载
  17. HBASE--MapReduce
  18. 24. 两两交换链表中的节点 leetcode
  19. [Leetcode] Binary tree level order traversal ii二叉树层次遍历
  20. NestedScrollView嵌套RecyclerView

热门文章

  1. bzoj4544 椭圆上的整点
  2. Javascript基础二(程序的三大结构)
  3. LeetCode Array Easy 119. Pascal&#39;s Triangle II
  4. Red5文件结构简介
  5. 【转载】vue-cli搭建的环境,用nginx做代理服务器,访问时显示:Invalid Host header
  6. python 正则匹配
  7. element-ui中table渲染的快速用法
  8. Delphi 常用API 函数列表
  9. jquery基础知识实例(一)
  10. vue基础四