【正文】
(expressionString+ test + (expressionvalue, expectedvalue))。 (c) SimpleNode expression = (SimpleNode)(expressionString)。 (c)表達式 TESTS [i][0]的值,總是等于期望值 TESTS [i][1] 可以到源代碼中看其它例子,設(shè)計 web container/ams server的時候,這些例子非常有用。 (x, 1)。 Root root= null。 Object expressionvalue = (expression, context, root)。 Object root。 AlcatelLucent 2020 23 All Rights Reser ved 169。也就是說, 這些JAVA文件組成 OGNL piler。 ?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:語法解析器的生成器。 AlcatelLucent 2020 15 Chained Subexpressions ?如果 OGNL表達式中,某個點號 (.)后面跟了個括號表達式 (...),比如: .(ensureLoaded(), name) 那么,這個點號 (.)之前的所有表達式 (這里為 )的值被傳入括號表達式內(nèi),作為該括號表達式的 root object。 ?OGNL表達式的基本單元是導航鏈 (navigation chain),通常就叫做鏈 “chain”。Luke然后用 ANTLR重新實現(xiàn)了該語言 ,取了個新名字,這次由 Drew鼓動的,這就是現(xiàn)在這種狀態(tài)。 ?JSF: sun EL( \\sun\faces\el ) ?JBossEL: All Rights Reser ved 169。 AlcatelLucent 2020 6 ?說明: ?view中, {().getName()} 就是個EL表達式。 AlcatelLucent 2020, OGNLtraining (30 minutes) Xiang yingbing 20200515 All Rights Reser ved 169。 ?JSF/JSP頁面如何顯示給用戶 (web browser) ?Web browser發(fā)送 request()到 web container ?Web container 讀取 ,把所有的 {…}用適當?shù)膬?nèi)容替換掉。使用相同的表達式來讀取屬性或者設(shè)置屬性。 All Rights Reser ved 169。 AlcatelLucent 2020 13 Expressions ?EL表達式遵守的格式(語法) 下面先列舉一些簡單的例子,以及一些重要的例子。 AlcatelLucent 2020 16 ?其余內(nèi)容,自己研究。那么,就可以用 ANTLR/JAVACC為這些語言生成 parser以解析這些語言。 All Rights Reser ved 169。 AlcatelLucent 2020 25 import 。i++){