Details
Description
Use case
-----------
on 'PageWithForm', after having filled the form, the user press a submit button.
A cookie has to be updated.
To trigger the update, a session attribute is set to false.
Then the user is redirected to a page : setResponsePage( new ResultPage() )
ResultPage extends Skeleton
In the Skeleton page, if the session attribute is set to false, the cookie is updated.
Then a NonResettingRestartException is thrown.
Problem
-----------
When I throw a NonResettingRestartException() in a page where I also override renderHead()
I get an error from WebPage # reportMissingHead
You probably forgot to add a <body> or <head> tag to your markup since no Header Container was
found but components were found which want to write to the <head> section.
<script type="text/javascript" src="./resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.11.3-ver-1435772778000.js"></script>
<link rel="canonical" href="https://localhost:8443/wicket/bookmarkable/com.quickstart.PageWithForm" />
but body and head tags are presents.
Sven Answer
-----------
you're SkeletonPage is interrupting its normal page rendering (#onInitialize() being triggered late from WebPageRenderer).
Thus in WebPage#validateHeaders() the page doesn't find its HtmlHeaderContainer, which it expects to exists already if rendering succeeded successfully.
So a) the error message is misleading and b) we may be able to improve this (e.g. checking #hasBeenRendered() before validating the headers).
Attachments
Attachments
Issue Links
- relates to
-
WICKET-1718 WebPage#onAfterRender erroneously reports missing header
- Resolved