<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.