Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Panel
borderStylesolid
titleTable of contents
Table of Contents
minLevel2

Definition

Wicket provides quite a few ways to modularize your web page creation. In addition to Markup Inheritance, you should also have a look at how you can simplify page creation using Wicket tags and Fragments. Markup Inheritance lets a Component extend the markup of it's its super class. The subclass markup is inserted at one point in the super class markup.

...

Code Block
class Parent extends WebpageWebPage
{
  public Parent()
  {
  }
}

Next define a child Page. First the markup:

...

  • <head> will be inserted in output automatically if required
  • <head> is not a wicket specific tag and you must use add() for components within in <head>
  • <head> is supported by panels, borders and inherited markup, but is not copied to the output. They are for previewability only (except on Pages)
  • <wicket:head> is not necessary in Page markup. Wicket interprets <head> as <wicket:head> automatically.
  • <wicket:head> makes sense in Panels, Borders and inherited markup (of Panels, Borders and Pages)
  • components within <wicket:head> must be added by means of add() like allways with Wicket. No difference (anymore)
  • <wicket:head> and it's content is copied into the output. Component contained in <wicket.head> are rendered as usual

Using Markup Inheritance with Panels

Markup Inheritance works with panels as well as Pages. To make this work, you have to make the markup container a transparent resolver, or add the child components to the markup container.

To mark an container as transparent resolver, override

Code Block
java
java

  WebMarkupContainer wmc = new WebMarkupContainer( "wmc" ) {
    @Override
    public boolean isTransparentResolver()
    {
      return true;
    }
  };