Yep. As we're doing header contributions in HEAD/ 1.1, we're depending on the autoAdd feature. Add this:

/**
* @see wicket.MarkupContainer#autoAdd(wicket.Component)
*/
public boolean autoAdd(Component component)
{
return border.autoAdd(component);
}

to SimpleBorderedPage

I'll update the WIKI,

Eelco


Jan Mikkelsen wrote:

Hi

I have a pretty simple program with a border (as described on wiki: How to create consistent page layouts using Borders <http://wicket.sourceforge.net/wiki/index.php/Consistent_page_layout_using_borders>). On one page there is a button that makes the server calculate some stuff and just stay on the page to display the results. After upgrading to HEAD version, I am getting this error:

wicket.WicketRuntimeException: If the root exception says something like "A child 
with id '_header' already exists"than you most likely forgot to override autoAdd() 
in your bordered page component.

   at wicket.markup.html.HtmlHeaderResolver.resolve(HtmlHeaderResolver.java:82)

   at wicket.MarkupContainer.renderNext(MarkupContainer.java:886)

   at wicket.MarkupContainer.renderAll(MarkupContainer.java:780)

   at wicket.Page.onRender(Page.java:742)

   at wicket.Component.render(Component.java:1074)

   at wicket.Page.doRender(Page.java:480)

   at wicket.protocol.http.WebRequestCycle.redirectTo(WebRequestCycle.java:207)

   at wicket.RequestCycle.respond(RequestCycle.java:771)

   at wicket.RequestCycle.request(RequestCycle.java:406)

   at wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:265)

   at wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:289)

   at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

   at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358)

   at 
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)

   at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)

   at org.mortbay.http.HttpContext.handle(HttpContext.java:1807)

   at 
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)

   at org.mortbay.http.HttpContext.handle(HttpContext.java:1757)

   at org.mortbay.http.HttpServer.service(HttpServer.java:879)

   at org.mortbay.http.HttpConnection.service(HttpConnection.java:789)

   at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:960)

   at org.mortbay.http.HttpConnection.handle(HttpConnection.java:806)

   at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218)

   at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:300)

   at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:511)

Caused by: java.lang.IllegalArgumentException: A child with id '_header' 
already exists:

[MarkupContainer [Component id = border, page = 
com.jatak.webtools.web.gui.MemberPage, path = 3:border.SimpleBorder, isVisible 
= true, isVersioned = true]]

   at wicket.MarkupContainer.add(MarkupContainer.java:138)

   at 
com.jatak.webtools.web.gui.SimpleBorderedPage.add(SimpleBorderedPage.java:46)

   at wicket.MarkupContainer.autoAdd(MarkupContainer.java:181)

   at wicket.markup.html.HtmlHeaderResolver.resolve(HtmlHeaderResolver.java:78)

Do I need to override autoAdd() somewhere? If so, where and how?

I tried the “re-use strategy” in MarkupContainer, but with the same results.

Regards,

Jan Mikkelsen




-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to