Using The Widget Context Bean
During the process of rendering a widget, the Widget Framework maintains a widget context bean in the request scope called widget
. The widget
bean is a java.util.Map
by default. It contains information about the current context widget and provides access to the intermediate data processed by the Controller and ModelProcessor. The widget
bean is removed at the end of the widget's life cycle.
Note that if a nested widget is loaded from another widget context then widget
represents the nested widget if retrieved from nested widget rendering code.
The widget
bean has the following properties:
-
${widget.model}
- A bean (java.util.Map
by default) created from the widget's content field values. The string representation of a widget content field value can be retrieved from this bean using the field name as property name. -
${widget.viewName}
- The name of the widget's selected view. -
${widget.properties}
- A bean (java.util.Map
by default) created from the widget's properties -
${widget.widgetContent}
- The widget content item as aPresentationArticle
object. -
${widget.widgetName}
- The name of the widget. -
${widget.contentResult}
- The Data Source result of a Data Source client widget (for example, a Teaser widget) -
${widget.invokingWidget}
- The widget bean of the invoking widget if the current context widget is invoked by another widget. A Teaser View widget, for example, is invoked by a View Picker widget. Teaser Views do not have a Data Source of their own, they are supplied with data by their invoking View Picker. So if you want to access the Data Source results from a Teaser View widget, you have to use${widget.invokingWidget.contentResult}
.
In Widget Framework version 2.2.0 and earlier a bean was created based on the widget name. For a widget called Hello World, for example, the Widget Framework controller would create a bean called helloWorld
. This bean was used to hold widget field values and processed intermediate data. Use of this bean is now deprecated and it will be removed in a future version of the Widget Framework. You are therefore advised not to use it. Use ${widget.model}
instead.
Please note that we do not recommend adding objects directly to the request
scope in order to pass values into JSP pages in a widget. Please use the widget
context bean instead.