博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4.Struts2-OGNL
阅读量:6238 次
发布时间:2019-06-22

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

/*ognl 是 strut2 特有的表达式,使用 ognl,struts2 就无需将对象手动放值进request等范围,页面(从值栈中)直接传值*/

  

OGNL

1 
2 <%@ page language="java" contentType="text/html; charset=GB18030" 3 pageEncoding="GB18030"%> 4 <%@ taglib uri="/struts-tags" prefix="s" %> 5 6 7 8
9 OGNL表达式语言学习10 11 12
    13
  1. 访问值栈中的action的普通属性: username =
  2. 14
  3. 访问值栈中对象的普通属性(get set方法):
    |
    |
    | wrong: <%--
    --%>
  4. 15
  5. 访问值栈中对象的普通属性(get set方法):
  6. 16
  7. 访问值栈中对象的普通方法:
  8. 17
  9. 访问值栈中对象的普通方法:
  10. 18
  11. 访问值栈中action的普通方法:
  12. 19

    20
  13. 访问静态方法:
  14. 21
  15. 访问静态属性:
  16. 22
  17. 访问Math类的静态方法:
  18. 23

    24
  19. 访问普通类的构造方法:
  20. 25

    26
  21. 访问List:
  22. 27
  23. 访问List中某个元素:
  24. 28
  25. 访问List中元素某个属性的集合:
  26. 29
  27. 访问List中元素某个属性的集合中的特定值:
    |
  28. 30
  29. 访问Set:
  30. 31
  31. 访问Set中某个元素:
  32. 32
  33. 访问Map:
  34. 33
  35. 访问Map中某个元素:
    |
    |
  36. 34
  37. 访问Map中所有的key:
  38. 35
  39. 访问Map中所有的value:
  40. 36
  41. 访问容器的大小:
    |
  42. 37

    38
  43. 投影(过滤):
  44. 39
  45. 投影:
  46. 40
  47. 投影:
  48. 41
  49. 投影:
  50. 42

    43
  51. []:
  52. 44
45 46
47 48

 

 

注:

  1.因为Set是无序的,访问Set中某个元素,是没有意义的,所以是无法通过下标来取出Set中某个元素

  2.访问静态方法,在Struts2.1中 需要在struts.xml中加上 <constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>

  3.访问值栈中对象的属性和方法,需要new出这个对象,需要一个无参的构造方法,(如果该类没有构造方法,系统默认有一个构造方法)

  4.投影只有 '?#' '^#' '$#' 这三种写法, '^#'表示取集合中第一个元素 '$#'表示取集合中最后一个元素users.{?#this.age==1}[0]

  举例分析:users是一个List集合,上式表示:遍历users这个List集合,取出user.age==1 的user 因为可能有多个user满足条件,

  所以是一个集合的形式 最后[0] 表示取出满足条件的user集合中的第一个

  users.{^#this.age>1}.{age}取出满足age>1 的所有user,这是一个集合,所以取 age属性

  也是用集合的方式,选择集合中第一个user,得到一个age集合

  5.[] 表示取出 值栈 中的Object,[0] 表示 取出 值栈中的所有的Object(从第一个开始)

  [1] 表示取出第二个Object [0].username 表示从上往下依次验证值栈中的Object是否有username这个key 如果有,取出这个key对应的value

  另外:如果action之间存在转发(type="chain") 因为这属于一次访问(request)

  所以,两个action都会被当做Object 压在 值栈中

转载于:https://www.cnblogs.com/xuzekun/p/7380458.html

你可能感兴趣的文章
Linux coredump
查看>>
Ubuntu 10.04安装水晶(Mercury)无线网卡驱动
查看>>
我的友情链接
查看>>
ElasticSearch 2 (32) - 信息聚合系列之范围限定
查看>>
VS2010远程调试C#程序
查看>>
[MicroPython]TurniBit开发板DIY自动窗帘模拟系统
查看>>
从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
查看>>
windows查看端口占用
查看>>
Yii用ajax实现无刷新检索更新CListView数据
查看>>
JDBC的事务
查看>>
App 卸载记录
查看>>
JavaScript变量和作用域
查看>>
开源SIP服务器加密软件NethidPro升级
查看>>
Apache Pulsar中的地域复制,第1篇:概念和功能
查看>>
python pip install 出现 OSError: [Errno 1] Operation not permitted
查看>>
从源码分析scrollTo、scrollBy、Scroller方法的区别和作用
查看>>
ObjectOutputStream和ObjectInputStream
查看>>
南京大学周志华教授当选欧洲科学院外籍院士
查看>>
马士兵教学语录
查看>>
计算机网络与Internet应用
查看>>