Goal is to be able to:
- hide/show some parts of the layouts
- change some parts of the layouts depending on user
Depending on user action, for instance:
- click on a link
- check checkbox
- select a value in a select component
The nxu:valueHolder tag makes it possible to keep a value in the page, without needing a backing bean, and to expose it in the context. This is the first anchor that makes it possible to handle dynamic behaviour, and it also handles persistence of the submitted value on redirection after a validation error.
- methods that perform impact on the value holder are currently too specific (see for instance SelectionActionsBean#onClick and #onSelection): lookup should be better (improve lookup of related components, especially when in JSF naming containers like layout template, some widget templates, some components used by widgets, etc...) + actions should be better (setValue vs. setSubmittedValue).
- when the layout is only partly re-rendered, it might affect other parts of the form and make them misbehave, especially if the same widget names are used as widgets ids will be recomputed: the components that were not re-rendered will not be able to decode value from request accurately.