/** * */ package com.ly.rule; import java.util.HashMap; import java.util.Map; import org.apache.ibatis.ognl.Ognl; import org.apache.ibatis.ognl.OgnlContext; import org.apache.ibatis.ognl.OgnlException; /** * @author ly * */ public class OgnlDemo { /** * @param args */ public static void main(String[] args) { // test1(); // test2(); test0(); } private static void test0() { OgnlContext context = new OgnlContext(); Map<String, Object> obj = new HashMap<>(); obj.put("name", "test"); obj.put("user_age", new Integer(10)); obj.put("order_amount", new Double(3000)); context.setRoot(obj); String expression = "name == 'test' && user_age < 10 && order_amount > 3000"; try { Boolean result = (Boolean) Ognl.getValue(expression, context, context.getRoot()); System.out.println(result); } catch (OgnlException e) { e.printStackTrace(); } } private static void test1() { Foo foo = new Foo(); foo.setName("test"); User user = new User(); user.setAge(9); Order order = new Order(); order.setAmount(3003.56); OgnlContext context = new OgnlContext(); context.setRoot(foo); context.put("user", user); context.put("order", order); System.out.println(context.getValues()); String expression = "name == 'test' && #user.age < 10 && #order.amount > 3000"; try { Boolean result = (Boolean) Ognl.getValue(expression, context, context.getRoot()); System.out.println(result); } catch (OgnlException e) { e.printStackTrace(); } } private static void test2() { Foo foo = new Foo(); foo.setName("test"); User user = new User(); user.setAge(19); Order order = new Order(); order.setAmount(3003.56); OgnlContext context = new OgnlContext(); context.setRoot(foo); context.put("user", user); context.put("order", order); System.out.println(context.getValues()); String expression = "name == 'test' && #user.age < 10 && #order.amount > 3000"; try { Boolean result = (Boolean) Ognl.getValue(expression, context, context.getRoot()); System.out.println(result); } catch (OgnlException e) { e.printStackTrace(); } } } class Order { private double amount; public double getAmount() { return amount; } public void setAmount(double amount) { this.amount = amount; } @Override public String toString() { return "Order [amount=" + amount + "]"; } } class User { private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [age=" + age + "]"; } } class Foo { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Foo [name=" + name + "]"; } }
相关推荐
NULL 博文链接:https://javaprimary.iteye.com/blog/2429712
uc-httpd-1.0.0-buffer-overflow-exploit [熊麦uc-httpd 1.0.0缓冲区溢出漏洞利用概念证明] 概念证明代码:0dayPoC.py CVE-2018-10088 感谢CVE分配团队为构建以下内容提供的帮助: [描述] 通过XiongMai uc-httpd ...
目前(2011-12-21)还在持续改进中,如有问题请提出,感谢 编译: autoreconf --install CC=arm-linux-gcc ./configure --host=arm-linux make 建议使用2.95.3的arm-linux-gcc,以便能够在ADS下进行源码级调试 ...
由于系统发布时间还不是很长,会员功能还不算强大,不过今后会有很大发展,将支持UC,以整合大多数主流论坛。 12、专门的歌手库。用户可以在后台直接编辑歌手信息,定制歌手信息,歌手简介支持html,也同过...
我重新组织了所有文件,以确保您可以每年(或每月一次,取决于您组织路径的方式)轻松地重复使用同一模板,假设您的活动是每年一次。 非常感谢Agency的创建者,因为没有他们的辛勤工作,这个主题是不可能的! 随时...
内置用于AVR uC的stk500v1编程器:使用HTTP上载十六进制文件的程序 从连接的微控制器到Internet的出站REST HTTP请求 从附加的微控制器到互联网的MQTT客户端发布/订阅 提供自定义网页,这些网页包含从附加的uC动态...
尊敬的朋友你们好,感谢您选择BidCms开源竞拍系统,BidCms自发布以来已经经历了三个版本的更新,功能也越来越丰富,系统也更加稳定成熟。这也是更多的站长毫不犹豫选择BidCms的理由。我们至力于电子商务十余年的研究...
在MATLAB文件中,代码是为2017年Spring在UC Merced上的数学131:数值方法课程编写的。特别感谢教授该课程的Vu Thai Luan教授和帮助启发作者完成写作的Shagun Rawat此代码。 当它可以使用以下方法执行曲线拟合和线性...
BSR文件 BSR.jl库包装了UC Berkeley 页面中的代码,并将其公开以方便在Julia中使用。 这是一项正在进行的工作,因为仅公开了一部分功能(欢迎拉动请求!)。 当前包装了以下算法: 全局边界概率(gPb) gpb-owt-...
助推器提交CalHacks 6.0目录描述Berkulator是一种学术网络工具,用于在UC Berkeley创建整体课程表。 该软件使用各种学术资源,包括教授的评分,年级分布和步行距离,以创建关于上课时间表可能有多困难的全面预测。...
然后发送给QQ/MSN/ICQ/YAHOO/UC好友 安装广告公司(注:其中使用了绝对地址,请修改adcom.php和对应的模版) 安装社区俱乐部 还有不少小HACK,已经记不清了~ 在此感谢这些插件的作者,因为他们的...
本文档的许多初始基础是从UC Berkeley的JupyterHub和Kubernetes在程序中的成功使用中学到的信息。 致谢 感谢以下贡献者: 亚伦·库里奇(Aaron Culich) 卡罗尔·威林 克里斯·霍尔德格拉夫 埃里克·桑德尔 瑞安·...
2. 解决了模板文件名称中包含特殊字符导致的页面空白问题(推荐) 3. 修复了数据库工具不可用的问题(推荐) 4. 修改编辑器查看源码界面为本页查看 5. 修复了文章标题、短标题和描述多次过滤的问题 6. 清空回收站...
专为维护而设计的发行版,... 特别感谢Nimord提供的墙纸:https://www.youtube.com/channel/UC3l664KcaFcbiLW9yOTnk8g !!! 注意力 !!! 如果自动登录不起作用:用户:amorod密码:123并且不要忘记阅读自述文件
你好,首先感谢你下载李枫破解的柯林net9.0干净数据库程序。 数据库文件根目录的1.bak用星外的主机管理可以自助还原,如果使用的其他主机管理请联系空间商协助还原数据库。数据库连接路径在根目录Web.config文件里,...
修复网站安全问题(感谢 秒杀@360 、 合肥滨湖虎子@360 的反馈) 修复发布某些字符的微博时提示内容为空的BUG 修复某些网站会出现sid is invalid提示的问题 修复运行环境下模板编译出错提示信息暴露网站物理路径...
修复网站安全问题(感谢 秒杀@360 、 合肥滨湖虎子@360 的反馈) 修复发布某些字符的微博时提示内容为空的BUG 修复某些网站会出现sid is invalid提示的问题 修复运行环境下模板编译出错提示信息暴露网站物理路径...