Struts2中的OGNL

16 篇文章 0 订阅

访问Struts 2的命名对象:parameters、request、session、application和attr
OGNL表达式 执行结果 Java代码 执行结果
#parameters.greeting ActionContext.getContext().getParameters().get("greeting")欢迎访问程序员之家
#request.empName张三((Map)ActionContext.getContext().get("request")).get("empName")张三
#session.empName李四ActionContext.getContext().getSession().get("empName")李四
#application.empName王五ActionContext.getContext().getApplication().get("empName")王五
#attr.empName张三((Map)ActionContext.getContext().get("attr")).get("empName")张三
访问列表
OGNL表达式 执行结果 Java代码 执行结果
emps[0].name张三((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().get(0).getName()张三
emps[1].addressAddress [city=上海, country=中国, street=南京西路20号]((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().get(1).getAddress()Address [city=上海, country=中国, street=南京西路20号]
emps[2].address.city成都((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().get(2).getAddress().getCity()成都
emps.size3((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().size()3
emps.isEmptyfalse((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().isEmpty()false
访问数组
OGNL表达式 执行结果 Java代码 执行结果
emps[0].emails[0]zhangsan@sina.com((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().get(0).getEmails()[0]zhangsan@sina.com
emps[1].emails[1]lisi@163.com((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().get(1).getEmails()[1]lisi@163.com
访问Map
OGNL表达式 执行结果 Java代码 执行结果
emps[0].accounts['建行']12345678((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().get(0).getAccounts().get("建行")12345678
emps[1].accounts.农行597432((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().get(1).getAccounts().get("农行")597432
emps[2].accounts.size2((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().get(1).getAccounts().size()2
emps[2].accounts.isEmptyfalse((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().get(1).getAccounts().isEmpty()false

选择和投影

选择示例: emps.{?#this.salary > 2000}

  • 李四的薪水是2200.0
  • 王五的薪水是2600.0

投影示例: emps.{name}

  • 张三
  • 李四
  • 王五

Lambda表达式

Lambda表达式示例:#isManager = :[#this.name == '张三' ? '是管理者' : '是雇员']

  • 张三是管理者
  • 李四是雇员
  • 王五是雇员
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值