I've overridden renderHead to write to the header of the page but I get
a strange error message that I have not been able to work out. It
executes some code that has a 'not implemented' comment:
The code is in WebPage:
/**
* Validate that each component which wanted to contribute
to the header section actually was
* able to do so.
*/
private void validateHeaders()
{
// search for HtmlHeaderContainer in the first
level of children or deeper
// if there are transparent resolvers used
HtmlHeaderContainer header = visitChildren(new
IVisitor<Component, HtmlHeaderContainer>()
{
public void component(final
Component component, final IVisit<HtmlHeaderContainer> visit)
{
if (component instanceof
HtmlHeaderContainer)
{
visit.stop((HtmlHeaderContainer)component);
}
else if (component
instanceof TransparentWebMarkupContainer == false)
{
visit.dontGoDeeper();
}
}
});
if (header == null)
{
// the markup must at least contain
a <body> tag for wicket to automatically
// create a HtmlHeaderContainer. Log
an error if no header container
// was created but any of the
components or behaviors want to contribute
// something to the header.
header = new
HtmlHeaderContainer(HtmlHeaderSectionHandler.HEADER_ID);
add(header);
Response orgResponse =
getRequestCycle().getResponse();
try
{
final StringResponse
response = new StringResponse();
getRequestCycle().setResponse(response);
// Render all header
sections of all components on the page
AbstractHeaderRenderStrategy.get().renderHeader(header, getPage());
response.close();
if
(response.getBuffer().length() > 0)
{
// @TODO it
is not yet working properly. JDo to fix it
log.error("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
log.error("You probably forgot to add a <body> or <head> tag to your
markup since no Header Container was \n" +
"found but components were found which want to write to the <head>
section.\n" +
response.getBuffer());
log.error("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
}
}
catch (Exception e)
{
// just swallow this
exception, there isn't much we can do about.
log.error("header/body
check throws exception", e);
}
finally
{
this.remove(header);
getRequestCycle().setResponse(orgResponse);
}
}
}
Yours sincerely,
Chris Colman
Pagebloom Team Leader,
Step Ahead Software
pagebloom - your business & your website growing together
Sydney: (+61 2) 9656 1278 Canberra: (+61 2) 6100 2120
Email: [email protected] <mailto://[email protected]>
Website:
http://www.pagebloom.com <blocked::http://www.pagebloom.com/>
http://develop.stepaheadsoftware.com
<blocked::http://develop.stepaheadsoftware.com/>