[ https://issues.apache.org/jira/browse/WICKET-1200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12552300 ]
Gerolf Seitz commented on WICKET-1200: -------------------------------------- juergen replaced this: markupStream.skipUntil(openTag.getName()); with this: Response response = getResponse(); getRequestCycle().setResponse(NullResponse.getInstance()); try { super.onComponentTagBody(markupStream, openTag); } finally { getRequestCycle().setResponse(response); } to fix WICKET-993. however, i tested it with: markupStream.skipToMatchingCloseTag(openTag); and also the failing code in WICKET-993 works as expected. what was the original intention for rendering to a nullresponse? > <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 > Assignee: Juergen Donnerstag > > 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.