MrNiebit / -solo-blog

comment
0 stars 0 forks source link

ognl表达式和值栈 - gitsilence 的个人博客 #64

Open MrNiebit opened 3 years ago

MrNiebit commented 3 years ago

https://blog.lacknb.cn/articles/2019/08/20/1577974156702.html

OGNL表达式 OGNL的全称是对象图导航语言,使用这种表达式语言,可以通过某种表达式语法,存取Java对象任意属性,调用Java对象的方法,同时能够自动实现必要的类型转换。 如果把表达式看作是一个带有语义的字符串,那么OGNL无疑成为这个语义字符串与Java对象之间的沟通的桥梁。 Struts默认的表达式语言就是OGNL,它具有以下特点: 支持对象方法调用。例如: objName.methodName()。 支持类静态方法调用和值访问,表达式的格式为@类全名(包含包路径)@方法名(值名)。例如: @java.lang.String@format('foo %s', 'bar')。 支持赋值操作和表达式关联。例如: price = 100, discount = 0.8, 在方法calculatePrice()中进行乘法计算会返回80。 访问OGNL上下文(ognl Context) 和 ActionContext。 操作集合对象。 ognl的操作实际上就是围绕着ognl结构的三个要素而进行的,分别是表达式、根对象、上下文....