Tapestry is tightly integrated with OGNL, the Object Graph Navigation Language. OGNL is a Java expression language, which is used to peek into objects and read or update their properties. OGNL is similar to, and must more powerful than, the expression language built into the JSP 2.0 standard tag library. OGNL not only support property access, it can include mathematical expressions and method invocations. It can reference static fields of public classes. It can create new objects, including lists and maps.
The simplest OGNL expressions are property names, such as foo
, which
is equivalent to method getFoo()
(or setFoo()
if the expression is
being used to update a property). The "Navigation" part comes
into play when the expression is a series of property names, such as foo.bar.baz
,
which is equivalent to getFoo().getBar().getBaz()
... though care must always be taken that the intermediate
properties (foo
and bar
in this example) are not null.
OGNL is primarily used to allow two different objects (such as a page and a component contained by that page) to share information.