OGNL详解

原创 2015年07月07日 23:27:05

本文目标:

1、知道什么是OGNL;

2、为什么使用OGNL;

3、如何使用OGNL。

OGNL介绍

1、OGNL是什么?
OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。类似于EL表达式。

2、为什么使用OGNL?
  1)因为OGNL功能更为强大;
2)Struts2默认采用OGNL表达式来访问Action中的数据(实际上上是通过ValueStack对象来访问Action的)。

3、OGNL的实现原理
在Struts2中,使用OGNL表达式访问Action数据,实际上是通过ValueStack进行访问的,ValueStack中封装了Action对象以及程序上下文相关的数据。
在JSP中写OGNL表达式,会通过标签解析组件发送给ValueStack,而ValueStack会通过其内部的OGNL引擎来解析表达式,从而取值

4、如何使用OGNL表达式
首先要想使用OGNL表达式必须显得加上标签:
<%@taglib uri="/struts-tags" prefix="s"%>。
这个标签在struts-core包下的META-INF下的struts-tags.tld中。
---struts2的显示标签
<s:property value="表达式"/>

5、使用OGNL表达式能做什么?
1)访问Action中的基本属性(在Action中需定义其的get方法)
public class Action {
	
	private User user;
	private String message;
   
        public User getUser(){
              return this.user;
        }
       
        public String getMessage(){
              return message;
       }

	public String execute(){
		return "success";
	}
}
<s:property value="user.name"/>    访问User中的name属性
<s:property value="message"/>       访问message属性
2)访问数组集合
需要在Action中定义数组和集合,并定义它们的get方法。
<s:property value="数组名/集合名[下标]"/>

3)访问Map
<s:property value="Map名称.key值"/>得到的是value值。

4)运算
在value中可以对返回结果进行计算+/-/*/等。

5)可以调用方法
在value中可以调用返回值的方法:例如放回值是String类型的就能够调用String类型的方法.
6)可以创建集合
在value中使用{'a'','b','c'}可以创建ArrayList集合。

7)可以创建Map
   在value中可以使用{'北京':'2200万人','上海':'2300万人','广州','2000万人'}创建LinkedHashMap。





OGNL表达式详解

  • 2014年06月30日 11:43
  • 2KB
  • 下载

Struts2之Ognl详解案例TextOgnl

  • 2014年12月20日 12:42
  • 6KB
  • 下载

Struts2中的OGNL详解

http://www.cnblogs.com/xly1208/archive/2011/11/19/2255500.html 首先了解下OGNL的概念: OGNL是Object-Gra...

Struts2的OGNL详解

  • 2011年09月09日 13:24
  • 14KB
  • 下载

Struts2:OGNL表达式详解

OGNL用于操作ValueStack中的数据。它负责两件事。第一是在接收HTTP请求时将请求中的字符串转换成Java中的类型,比如int、String等,并赋值给ValueStack上的JavaBea...

struts2中ognl标签详解

if语句 60}"> 老年人 35}"> 中年人 15}"> 青年人 少年 ...

struts2三种表单值的传递方式及OGNL详解

 http://blog.csdn.net/dacainiao007/article/details/7895540 struts传值方式 第一种:所有属性都在action中写出。 ...

Java程序员从笨鸟到菜鸟之(四十八)细谈struts2(十)ognl概念和原理详解

引言:众所周知,在mvc中,数据是在各个层次之间进行流转是一个不争的事实。而这种流转,也就会面临一些困境,这些困境,是由于数据在不同世界中的表现形式不同而造成的:   1. 数据在页面上是一个扁平的...

Struts 2中的OGNL 表达式详解

表达式语言主要有以下几大好处: 避免(MyType) request.getAttribute()和myBean.getMyProperty()之类的语句,使页面更简洁;  支持运算符(如+-...

Struts(21)OGNL详解

Struts2 中内置了OGNL表达式的支持,使得Struts2的具有比Struts1更为强大的数据访问的功能。本文主要讲解OGNL的使用方法,并不会去讲解一些原理性的东西,想要了解的朋友可以自己去查...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OGNL详解
举报原因:
原因补充:

(最多只允许输入30个字)