Overview of Wicket Components

Here's a brief overview of each of the Wicket components (the intention is to provide an overview of each, so if any are missing, they should be added), together with a reference to a sample for each. (References to samples still to be added for most components.) I will continue adding information to this list -- so it is not complete and it will keep changing -- as I learn more about Wicket. I intend to add code snippets to illustrate the usage of each component. I will also add related wicket tags to each component description. Once this overview is in a good enough state -- and assuming the Wicket team will want to host it -- it will be made available from the Wicket site. Thanks to Eelco for providing the basis of the information below.

Output components

Package: wicket.markup.html.basic


  • Label. Outputs a single string. See the "HelloWorld" sample.


    add(new Label("message", "Hello World!"));


    <span wicket:id="message" id="message">Message goes here</span>

  • MultiLineLabel. Outputs a string with converted line breaks and tabs. See the "GuestBook" sample.


    public GuestBook() {
       // Add comment form
       add(new CommentForm("commentForm"));
       // Add commentListView of existing comments
       add(commentListView = new ListView("comments", commentList) {
          public void populateItem(final ListItem listItem) {
             final Comment comment = (Comment)listItem.getModelObject();
             listItem.add(new Label("date", new Model(comment.getDate())));
             listItem.add(new MultiLineLabel("text", comment.getText()));


        <span wicket:id="mainNavigation"/>
        <form wicket:id = "commentForm" id = "commentForm">
            Add your comment here:
            <textarea wicket:id = "text">This is a comment</textarea>
            <input type = "submit" value = "Submit"/>
        <span wicket:id = "comments" id="comments">
                <span wicket:id = "date">1/1/2004</span><br>
                <span wicket:id = "text">Comment text goes here.</span>
                More comment text here.

Layout and Grouping components

Packages: wicket.markup.html.panel, wicket.markup.html.border, wicket.markup.html.list, wicket.markup.html.tree


  • Panel. Generic component for nesting subcomponents. See "WicketExampleHeader".

  • Border. Generic component for nesting subcomponents within a border. See the "NavoMatic" sample.

  • ListView. Component for repetitive elements. ListViews can contain nested ListViews.

  • Loop. Same as ListView, but simpler and lighter, and therefore less advanced than ListView.

  • Tree. Component for interactive server-side tree. Includes events voor expanding/collapsing and for selection. See the "Nested" sample.

  • AbstractTree. Abstract tree component that can be used for implementing trees that follow an alternative rendering strategy.

Link components

Package: wicket.markup.html.link


  • BookmarkablePageLink. Specialized PageLink for BookmarkablePages.

  • ExternalLink. Link to non-Wicket sites, such as Google.

  • ImageMap. Link defined on an image.

  • Link. Generic call mechanism that can be attached to HTML anchors (such as <a href=>) or to arbitrary HTML elements, such as <TD> or <DIV>.

  • PageLink. Link to a Wicket page, able to determine whether the link is active or inactive. A page is only created when the link is clicked, which saves session space.

  • PopupCloseLink. Link that closes the current popup and removes it from the session.

  • ResourceLink. Link to a resource, such as JAR-ed images or PDF files.

Form components

Packages: wicket.markup.html.form, wicket.markup.html.form.upload


  • AbstractChoice. Basis class for all selection components.

  • AbstractSingleSelectChoice. Basis class for single selection components.

  • AbstractTextComponent. Basis component for custom text-based form components.

  • Button. Button for triggering a Form submit.

  • CheckBox. Checkbox component.

  • DropDownChoice. Dropdown for selection.

  • Form. Form component, equivalent of <form> in HTML.

  • FormComponent. Basis for custom form component.

  • ImageButton. Special button for working with images.

  • ListChoice. Scroll selection instead of drop-down.

  • ListMultipleChoice. Scroll and select multiple items.

  • PasswordTextField. Encrypted entry field for passwords.

  • RadioChoice. Radio button selection.

  • RequiredTextField. Adds RequiredValidator to TextField-type component.

  • TextField. Text field.

  • TextArea. Multi-line text field.

  • UploadForm. Special form for uploads. See "Upload" sample.

  • UploadField. Field used for nesting UploadForms, so that you can create an upload per field, which allows simultaneous multiple file uploads within a single UploadForm. See "Upload" sample.

Miscellaneous components

Package: wicket.markup.html.image


  • Image. Represents static and dynamic images. See "Images" sample.

Custom components

Package: wicket.markup.html


  • WebComponent. For components without subcomponents. Useful for components that need to influence their body directly, such as Labels.

  • WebContainer. For components that have subcomponents, such as Panels, Forms, etc.

  • WebPage. Represents an HTML page.

  • WebResource. Basis class for resources.



Posted by guest on December 12, 2005 at 09:53 PM PST #


Posted by johnson on January 12, 2006 at 10:14 PM PST #


Posted by guest on June 02, 2006 at 12:27 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed

Geertjan Wielenga (@geertjanw) is a Principal Product Manager in the Oracle Developer Tools group living & working in Amsterdam. He is a Java technology enthusiast, evangelist, trainer, speaker, and writer. He blogs here daily.

The focus of this blog is mostly on NetBeans (a development tool primarily for Java programmers), with an occasional reference to NetBeans, and sometimes diverging to topics relating to NetBeans. And then there are days when NetBeans is mentioned, just for a change.


« July 2016