Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Property Expression Language is used in the Property Models to access property values of object wrapped by model. Its syntax is very similar to the Object Graph Navigation Language (OGNL). (Wicket actually used to utilize the OGNL implementation until version 1.1.x. However, later it has been replaced by custom, better-performing, implementation of expression parser).

...

  • "property.index": If the property is a List or Array then the second property can be used as a index on that list/array like this: 'mylist.0'. This kind of expression will be mapped on the getProperty(index) or setProperty(index, value) methods. If the object represents a List and the index is greater than its size of this list, the list will be expanded.

Wiki MarkupIndex or map properties can be alternatively written as: {{"property\[index\]"}} or {{"property\[key\]"}}.

For example, if we have a following class:

...

unmigrated-wiki-markup
Panel
titleFrom the mailing list

We started out with OGNL in the past but:
1) OGNL at one point took about 30% processor time of the whole request. We simplified and optimized and wrote OGNL out.
2) We feel it's not the recommended way of programming to rely on property expressions beyond simple navigations
3) By overriding {{wicket.model.AbstractPropertyModel#onGetObject(wicket.Component)}} and {{AbstractPropertyModel#onSetObject(Component, Object)}} users can provide their own resolving if \ [necessary\].

Eelco Hillenius