博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts OGNL表达式
阅读量:5856 次
发布时间:2019-06-19

本文共 4699 字,大约阅读时间需要 15 分钟。

OGNLContext对象有两部分构成

  一部分是ROOT:可以放置任何对象作为ROOT

  另外一部分Context:必须是Map形式(键值对)

  

OGNL表达式操作

package cn.future.a_ognl;import java.util.HashMap;import java.util.Map;import ognl.Ognl;import ognl.OgnlContext;import ognl.OgnlException;import org.junit.Test;import cn.future.domain.User;public class Demo {        @Test    //取出Root中的值    public void fun() throws OgnlException{        //OGNL表达式        //准备ROOT        User userRoot = new User("ms",25);        //准备Context        Map
contextMap = new HashMap
(); contextMap.put("user1", new User("AAA",10)); contextMap.put("user2", new User("BBB",11)); //书写OGNL OgnlContext oc = new OgnlContext(); oc.setRoot(userRoot); oc.setValues(contextMap); //OGNL取值 //取root中userRoot对象的name属性 String name = (String) Ognl.getValue("name", oc, oc.getRoot()); int age = (Integer) Ognl.getValue("age", oc, oc.getRoot()); System.out.println(name); System.out.println(age); } @Test //取出Context中的值 public void fun1() throws OgnlException{ //OGNL表达式 //准备ROOT User userRoot = new User("ms",25); //准备Context Map
contextMap = new HashMap
(); contextMap.put("user1", new User("AAA",10)); contextMap.put("user2", new User("BBB",11)); //书写OGNL OgnlContext oc = new OgnlContext(); oc.setRoot(userRoot); oc.setValues(contextMap); //OGNL取值 //取User1对象的name属性 String name = (String) Ognl.getValue("#user1.name", oc, oc.getRoot()); int age = (Integer) Ognl.getValue("#user1.age", oc, oc.getRoot()); System.out.println(name); System.out.println(age); } @Test //为属性赋值 public void fun2() throws OgnlException{ //OGNL表达式 //准备ROOT User userRoot = new User("ms",25); //准备Context Map
contextMap = new HashMap
(); contextMap.put("user1", new User("AAA",10)); contextMap.put("user2", new User("BBB",11)); //书写OGNL OgnlContext oc = new OgnlContext(); oc.setRoot(userRoot); oc.setValues(contextMap); //OGNL取值 //给Roog中userRoot对象的name属性赋值 Ognl.getValue("name='grf'", oc, oc.getRoot());//赋值 有返回值,返回值是name的值 String name = (String) Ognl.getValue("name='grf',name", oc, oc.getRoot());//即赋值又取值 //给Context中user1的name属性赋值 Ognl.getValue("#user1.name='grf'", oc, oc.getRoot()); } @Test //为属性赋值(set get) public void fun3() throws OgnlException{ //OGNL表达式 //准备ROOT User userRoot = new User("ms",25); //准备Context Map
contextMap = new HashMap
(); contextMap.put("user1", new User("AAA",10)); contextMap.put("user2", new User("BBB",11)); //书写OGNL OgnlContext oc = new OgnlContext(); oc.setRoot(userRoot); oc.setValues(contextMap); //OGNL取值 //给Roog中userRoot对象的name属性赋值 Ognl.getValue("setName('grf')", oc, oc.getRoot());//赋值 返回值为null String name = (String) Ognl.getValue("getName()", oc, oc.getRoot());//即赋值又取值 //给Context中user1的name属性赋值 Ognl.getValue("#user1.setName('grf'),#user1.getName()", oc, oc.getRoot()); } @Test //调用静态方法,或者静态属性 public void fun4() throws OgnlException{ //OGNL表达式 //准备ROOT User userRoot = new User("ms",25); //准备Context Map
contextMap = new HashMap
(); contextMap.put("user1", new User("AAA",10)); contextMap.put("user2", new User("BBB",11)); //书写OGNL OgnlContext oc = new OgnlContext(); oc.setRoot(userRoot); oc.setValues(contextMap); //OGNL取值 //给Roog中userRoot对象的name属性赋值 Double pi = (Double) Ognl.getValue("@java.lang.Math@PI", oc, oc.getRoot());//赋值 返回值为null System.out.println(pi); } @Test //创建集合 list|map public void fun5() throws OgnlException{ //OGNL表达式 //准备ROOT User userRoot = new User("ms",25); //准备Context Map
contextMap = new HashMap
(); contextMap.put("user1", new User("AAA",10)); contextMap.put("user2", new User("BBB",11)); //书写OGNL OgnlContext oc = new OgnlContext(); oc.setRoot(userRoot); oc.setValues(contextMap); //OGNL取值 //创建list Ognl.getValue("{'aaa','bbb','ccc','ddd'}", oc, oc.getRoot()); Integer listSize = (Integer) Ognl.getValue("{'aaa','bbb','ccc','ddd'}.size()", oc, oc.getRoot()); String listName = (String) Ognl.getValue("{'aaa','bbb','ccc','ddd'}[0]", oc, oc.getRoot()); String listName1 = (String) Ognl.getValue("{'aaa','bbb','ccc','ddd'}.get(1)", oc, oc.getRoot()); //创建map Ognl.getValue("#{'name':'ms','age',25}", oc, oc.getRoot()); Integer mapSize = (Integer) Ognl.getValue("#{'name':'ms','age',25}.size()", oc, oc.getRoot()); String mapName = (String) Ognl.getValue("#{'name':'ms','age',25}[name]", oc, oc.getRoot()); Integer mapAge = (Integer) Ognl.getValue("#{'name':'ms','age',25}.get('age')", oc, oc.getRoot()); }}

 

转载于:https://www.cnblogs.com/ms-grf/p/7350551.html

你可能感兴趣的文章
关于 error: LINK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案...
查看>>
IT运维36计
查看>>
IKAnalyzer中文分词器
查看>>
OSPF报头及各种报文格式详解
查看>>
DNS正反解析、主从复制、子域授权、安全相关配置
查看>>
Kubernetes、Mesos和Swarm:Rancher编排引擎的比较
查看>>
反射一些理解
查看>>
BI报表分析和数据可视化,推荐这三个开源工具!
查看>>
电商大战近火对垒,比价为王的后市场较量
查看>>
windwos7出现windwos 7601错误,背景变黑,用激活软件激活不了的解决办法
查看>>
TMG发布远程桌面
查看>>
阿里云爬虫风险管理产品商业化,为云端流量保驾护航
查看>>
基于泛型编程的序列化实现方法
查看>>
网规冥念
查看>>
52.源代码解读-RocketMQ消息写入机制
查看>>
我的友情链接
查看>>
对比MySQL,一文看透HBase的能力及使用场景
查看>>
我的友情链接
查看>>
2.3更改和显示标签-TextView
查看>>
sublime使用技巧
查看>>