Struts2中的OGNL

来源:互联网 发布:主域名服务器ip地址 编辑:程序博客网 时间:2024/06/07 16:06

访问Struts 2的命名对象:parameters、request、session、application和attrOGNL表达式执行结果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()3emps.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.comemps[1].emails[1]lisi@163.com((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().get(1).getEmails()[1]lisi@163.com访问MapOGNL表达式执行结果Java代码执行结果emps[0].accounts['建行']12345678((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().get(0).getAccounts().get("建行")12345678emps[1].accounts.农行597432((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().get(1).getAccounts().get("农行")597432emps[2].accounts.size2((OgnlAction)ActionContext.getContext().getValueStack().peek()).getEmps().get(1).getAccounts().size()2emps[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 == '张三' ? '是管理者' : '是雇员']

  • 张三是管理者
  • 李四是雇员
  • 王五是雇员
  • ch07.rar (3.2 MB)
  • 下载次数: 5