ognl-training(30minutes)内容摘要:
ghts Reser ved 169。 AlcatelLucent 2020 14 Variable References: this OGNL在表达式的每个点号 (.)那里存储该点号 (.)之前的 EL表达式的值,该值通过 this来获取。 比如: ().(this 100? 2*this : 20+this) 第二个点 (.)那里,存储的值为 (),接着,在括号 (...)内部,用this来指向这个值,也就是 ()。 整个表达式的结果: 如果 ()大于 100,那么为 2*(()); 否则,整个 EL表达式的值为 20+(()) All Rights Reser ved 169。 AlcatelLucent 2020 15 Chained Subexpressions 如果 OGNL表达式中,某个点号 (.)后面跟了个括号表达式 (...),比如: .(ensureLoaded(), name) 那么,这个点号 (.)之前的所有表达式 (这里为 )的值被传入括号表达式内,作为该括号表达式的 root object。 上例 (ensureLoaded(), name)等价于: (a) rootObj1= (b) 调用 ()方法 【 方法调用,可以用来做一些动作。 比如赋值,检测,日志 ...】 (c) 然后把。 还可以按照这种模式,做很长的链接: .(methodOfObj2(), propertyOfObj2)..(methodOfObj3(), propertyOfObj3) 另外一个例子: obj1.(obj2).(obj3).(obj4).(obj5) 等价于: All Rights Reser ved 169。 AlcatelLucent 2020 16 其余内容,自己研究。 All Rights Reser ved 169。 AlcatelLucent 2020 17 All Rights Reser ved 169。 AlcatelLucent 2020 18 3. OGNL与 ANTLR /JavaCC (Java Compiler Compiler ) 前面 History中,我们提到: Luke然后用 ANTLR重新实现了该语言,取了个新名字,这次由 Drew鼓动的,这就是现在这种状态。 后来 Luke又用 JavaCC重新实现了该语言。 JavaCC/ANTLR Java Compiler Compiler [tm] (JavaCC [tm]) is the most popular parser generator for use with Java [tm] applications. A parser generator is a tool that reads a grammar specification and converts it to a Java program that can recognize matches to the grammar. In addition to the parser generator itself, JavaCC provides other standard capabilities related to parser generation such as tree building (via a tool called JJTree included with JavaCC), actions, debugging, etc. JavaCC是一种 grammar parser generator:语法解析器的生成器。 也就是用于生成语法解析器。 ANTLR也是类似的工具 很多语言,比如 Java, HTML, C/C++, OGNL, MIB,都遵循一定的格式。 那么,就可以用 ANTLR/JAVACC为这些语言生成 parser以解析这些语言。 All Rights Reser ved 169。 AlcatelLucent 2020 19 OGNL源代码是怎么生成出来的 \ognl\src\java\ognl • • • • … • • \ognl\ All Rights Reser ved 169。 AlcatelLucent 2020 20 用 JAVACC生成 OGNL的 Compiler(OGNL源代码 )过程: • java。ognl-training(30minutes)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。