<wicket:enclosure> bug, still calls getObject() on enclosed Models even if the content isn't rendered -----------------------------------------------------------------------------------------------------
Key: WICKET-1200 URL: https://issues.apache.org/jira/browse/WICKET-1200 Project: Wicket Issue Type: Bug Components: wicket Affects Versions: 1.3.0-rc1 Environment: n/a Reporter: Edvin Syse Steps to reproduce: - Create a quickstart project: mvn archetype:create -DarchetypeGroupId=org.apache.wicket \ -DarchetypeArtifactId=wicket-archetype-quickstart \ -DarchetypeVersion=1.3.0-rc1 \ -DgroupId=no.sysedata \ -DartifactId=enclosurebug mvn eclipse:eclipse - Add two labels to HomePage.java. Let Label1 return isVisible=false, and implement a Model where getObject() writes to stdout for Label2: package no.sysedata; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.model.Model; public class HomePage extends WebPage { private static final long serialVersionUID = 1L; public HomePage(final PageParameters parameters) { add(new Label("label1") { @Override public boolean isVisible() { return false; } }); add(new Label("label2", new Model() { @Override public Object getObject() { System.out.println("Getting object of model 2"); return "MODEL2 OBJECT"; } })); } } - In HomePage.html, add an enclosure around the two labels and let label1 be the controlling component for the enclosure: <html> <head> <title>Wicket Enclosure Bug</title> </head> <body> <wicket:enclosure child="label1"> <span wicket:id="label1">Label 1</span> <span wicket:id="label2">Label 2</span> </wicket:enclosure> </body> </html> - When you run the project, you'll get the following on stdout: "Getting object of model 2" And the rendered HTML when hitting the homepage is: <html> <head> <title>Wicket Enclosure Bug</title> </head> <body> <wicket:enclosure child="label1"></wicket:enclosure> </body> </html> If I add: @Override protected void init() { getMarkupSettings().setStripWicketTags(true); } to WicketApplication.java, the markup is: <html> <head> <title>Wicket Enclosure Bug</title> </head> <body> </body> </html> .. but the stdout is still the same. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.