Components inside an invisible <wicket:enclosure> are still rendered
--------------------------------------------------------------------
Key: WICKET-3833
URL: https://issues.apache.org/jira/browse/WICKET-3833
Project: Wicket
Issue Type: Bug
Components: wicket-core
Affects Versions: 1.5-RC5.1
Reporter: Matt Brictson
Attachments: WICKET-3833-quickstart.tgz
Consider this example:
<wicket:enclosure child="invisible">
This entire enclosure should be hidden.
<p wicket:id="invisible"></p>
<p wicket:id="shouldntrendereither"></p>
</wicket:enclosure>
If the "invisible" component is indeed invisible, then the entire enclosure is
also invisible. Furthermore this implies that none of the components within the
enclosure will be rendered. However this is not the case. Even though the
"shouldntrendereither"
component is in the same enclosure and therefore should not be rendered, Wicket
attempts to render it.
This was not the case in Wicket 1.4.x.
See the attached quickstart.
This is a serious problem for two reasons:
1. For performance, it does not make sense to render components, and therefore
potentially load model objects from the database, etc. if those components are
ultimately not being displayed.
2. In my experience, <wicket:enclosure> is used to hide components that would
otherwise fail to render, due to non-existent data or unauthorized access.
Pages that have been built under the assumption that hidden components are not
rendered (a very reasonable assumption) may now fail with exceptions in Wicket
1.5.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira