`

OGNL 入门教程

    博客分类:
  • java
阅读更多

ognl是一种表达式语言,感觉跟velocity这些东西差不多

struts2是根据ognl做的,实现mvc

 

ognl需要两个包ognl包,还有xwork-core包,要不会保存,包什么没有javassit什么滴

 

下面给出几个ognl的入门小例子

来源 http://blog.csdn.net/mmm123lmj/article/details/4527898

 

package org.ognl.test;

import java.util.HashMap;
import java.util.Map;

import ognl.Ognl;
import junit.framework.TestCase;

/**
 * http://blog.csdn.net/mmm123lmj/article/details/4527898
 * @author Administrator
 *
 */
public class OgnlTest extends TestCase {

	/*获得类属性,以及使用root getValue*/
	public void testOgnl_01() throws Exception{
		User user = new User();
		user.setUsername("dirk");
		
		String value = (String) Ognl.getValue("username", user);
		System.out.println(value);
	}
	
	public void testOgnl_02() throws Exception{
		User user = new User();
		Person p = new Person();
		p.setUsername("dallas");
		user.setPerson(p);
		
		String value = (String) Ognl.getValue("person.username", user);
		System.out.println(value);
	}


	public void testOgnl_03() throws Exception{
		User user = new User();
		Person p = new Person();
		p.setUsername("dallas");
		user.setPerson(p);
		
		String value = (String) Ognl.getValue("#root.person.username",user);
		System.out.println(value);
	}
	
	public static void main(String[] args) throws Exception {
		new OgnlTest().testOgnl_01();
	}
	
	//----------------------------------------------------
	//OGNL CONTEXT使用·
	public void testOgnl_04() throws Exception{
		Person p1 = new Person();
		Person p2 = new Person();
		p1.setUsername("dirk");
		p2.setUsername("terri");
		
		Map<String, Person> context = new HashMap<String, Person>();
		context.put("p1", p1);
		context.put("p2", p2);
		
		String value = (String) Ognl.getValue("p1.username +','+p2.username", context,new Object());
		System.out.println(value);
	}
	
	  public void testOgnl_05() throws Exception{   
	        Person p1 = new Person();   
	        Person p2 = new Person();   
	        p1.setUsername("风");   
	        p2.setUsername("云");   
	           
	        Map<String,Person> context = new HashMap<String,Person>();   
	        context.put("p1", p1);   
	        context.put("p2", p2);   
	           
	        User root = new User();   
	        root.setUsername("雨");   
	           
	        String value = (String)Ognl.getValue("#p1.username + ',' + #p2.username + ',' + username", context, root);   
	        System.out.println(value);   
	    }
	  
	  //-------------------------------------
	  //not important : OGNL赋值操作   java的method反射 get set方法
	   public void testOgnl_06() throws Exception{   
	        User user = new User();   
	           
	        //给root对象的属性赋值,相当于调用user.setUsername()   
	        Ognl.setValue("username", user, "暗之幻影");   
	           
	        System.out.println(user.getUsername());   
	    }   
	  
	  
	    public void testOgnl_07() throws Exception{   
	        User user = new User();   
	  
	        Map<String, User> context = new HashMap<String, User>();   
	        context.put("u", user);   
	           
	        //给context中的对象属性赋值,相当于调用user.setUsername()   
	        Ognl.setValue("#u.username", context, new Object(), "暗之幻影");   
	           
	        System.out.println(user.getUsername());   
	    }   
	  
	    public void testOgnl_08() throws Exception{   
	        User user = new User();   
	           
	        Map<String, User> context = new HashMap<String, User>();   
	        context.put("u", user);   
	           
	        //给context中的对象属性赋值,相当于调用user.setUsername()   
	        //在表达式中使用=赋值操作符来赋值   
	        Ognl.getValue("#u.username = '暗之幻影'",context, new Object());   
	           
	        System.out.println(user.getUsername());   
	    }   
	    public void testOgnl_09() throws Exception{   
	        User user = new User();   
	        Person p = new Person();   
	           
	        Map<String,Object> context = new HashMap<String,Object>();   
	        context.put("u", user);   
	        context.put("p", p);   
	           
	        //给context中的对象属性赋值,相当于调用user.setUsername()   
	        //在表达式中使用=赋值操作符来赋值   
	        Ognl.getValue("#u.username = '风',#p.username = '云'",context, new Object());   
	           
	        System.out.println(user.getUsername()+","+p.getUsername());   
	    }   
	    
	  //--------------------------------------
	  //not important 使用OGNL调用对象的方法
	    public void testOgnl_10() throws Exception{   
	        User user = new User();   
	        user.setUsername("暗之幻影");   
	           
	        String value = (String)Ognl.getValue("getUsername()", user);   
	        System.out.println(value);   
	    }   
	       
	    public void testOgnl_11() throws Exception{   
	        User user = new User();   
	           
	        Ognl.getValue("setUsername('暗之幻影')", user);   
	        System.out.println(user.getUsername());   
	    }   
}
 
分享到:
评论

相关推荐

    经典的ognl详细教程

    常用的ognl语言的解释及说明,以及在实际中的运用,百分百零基础就能学懂。

    struts2入门教程

    很好的struts2入门教程,网上搜集整理的! 内容: ·常用的Struts 2.0的标签(Tag)介绍 ·Struts 2.0的Action讲解 ·Struts2国际化(i18n)您的应用程序 ·Struts2.0转换器(Converter) ·Struts 2.0中实现...

    Struts2入门教程(全新完整版)

    2.OGNL入门 24 3.普通方法访问 24 4.静态方法访问 24 5.默认类Math的访问 24 6.调用普通类的构造方法 25 7.集合对象初步 25 8.集合对象进阶 25 9.N语法top语法 26 10.获取Stack Context中的信息 26 11.总结$ # %的...

    Struts2入门教程。包括jquery集成等。入门必看

    第 1章 STRUTS2入门................................................................................................................................................3 第 2章STRUTS2晋级.....................

    structs2教程

    structs2教程,重点介绍了Struts2入门及基本配置 Struts2核心概念及原理 Struts2输入校验 Struts2实现文件上传及下载 Struts2深入探索 Struts2的拦截器 Ognl语言 Struts2标签

    Struts2教程

    Struts2 实际上是在 Webwork 基础上构建起来的 MVC 框架。我们从 Struts2 的 源代码中可以看到,有很多都是直接使用的 xwork(Webwork 的核心技术 ) 的包。既然从技术 上来说 Struts2 是全新的框架,那么就让我们来...

    struts2官方教程

    在本书中,我们将从简单的表单及表单处理开始,逐一讲述编写Web应用程序的基础知识:action、interceptor和result,以及控制反转(IoC)模式、对象图导航语言(OGNL)和所有来自WebWork的实用JSP标签等。然后我们...

    Struts2.0中文教程权威版

    Struts 2权威指南——第3章 Struts 2基础.doc 01 为Struts 2.0做好准备 02 常用的Struts 2.0的标志(Tag) 03 Struts 2.0的Action讲解 04 在Struts 2.0中国际化(i18n)您的应用程序 05 转换器(Converter)——...

    Java Web程序设计教程

    程序设计教程.pdf&gt;&gt;人民邮电出版社的教程哦,所以,好书,你懂的!! 第1章web应用开发简介 1 1.1何为web应用 1 1.1.1web的概念及发展 1 1.1.2web应用程序 2 1.2使用java开发web应用 3 1.2.1面向对象的编程语言...

    springmybatis

    (读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看...

Global site tag (gtag.js) - Google Analytics