| <?xml version="1.0"?> |
| <document> |
| <properties> |
| <title>Wicket QuickTour: Hello World!</title> |
| </properties> |
| |
| <meta |
| name="keyword" |
| content="wicket, example, web, j2ee, java" /> |
| |
| <body> |
| <section name="Hello World!"> |
| <p> |
| HelloWorld demonstrates the basic structure of a web application in Wicket. A Label |
| component is used to display a message on the home page for the application. |
| </p> |
| <p> |
| In all the Wicket examples, you have to put all files in the same package directory. |
| This means putting the markup files and the java files next to one another. It is |
| possible to alter this behavior, but that is beyond the scope of this example. The |
| only exception is the oblibatory <code>web.xml</code> file which should reside |
| in the <code>WEB-INF/</code> directory of your web application root folder. |
| </p> |
| <img src="images/image001.png" alt="HelloWorld" /> |
| <subsection name="HelloWorldApplication.java"> |
| <p> |
| Each Wicket application is defined by an <code>Application</code> |
| object. This object defines what the <em>home page</em> is, and allows for |
| some configuration. |
| </p> |
| <source><![CDATA[package wicket.examples.helloworld; |
| |
| import wicket.protocol.http.WebApplication; |
| |
| public class HelloWorldApplication extends WebApplication |
| { |
| public HelloWorldApplication() |
| { |
| getPages().setHomePage(HelloWorld.class); |
| } |
| }]]></source> |
| <p> |
| Here you can see that we define <code>wicket.examples.helloworld.HelloWorld</code> |
| to be our home page. When the base URL of our application is requested, the |
| markup rendered by the HelloWorld page is returned. |
| </p> |
| </subsection> |
| <subsection name="HelloWorld.java"> |
| <source><![CDATA[package wicket.examples.helloworld; |
| |
| import wicket.markup.html.WebPage; |
| import wicket.markup.html.basic.Label; |
| |
| public class HelloWorld extends WebPage |
| { |
| public HelloWorld() |
| { |
| add(new Label("message", "Hello World!")); |
| } |
| }]]></source> |
| <p> |
| The <code>Label</code> is constructed using two parameters: |
| <ul> |
| <li><code>"message"</code></li> |
| <li><code>"Hello World!"</code></li> |
| </ul> |
| The first parameter is the component identifier, which Wicket uses |
| to identify the <code>Label</code> component in your HTML markup. |
| The second parameter is the message which the <code>Label</code> should |
| render. |
| </p> |
| </subsection> |
| |
| <subsection name="HelloWorld.html"> |
| <p>The HTML file that defines our Hello World functionality is as follows:</p> |
| <source><![CDATA[<html> |
| <body> |
| <span wicket:id="message">Message goes here</span> |
| </body> |
| </html>]]></source> |
| <p> |
| In this file, you see two elements that need some attention: |
| <ul> |
| <li> |
| the component declaration |
| <code> |
| <![CDATA[<span wicket:id="message">]]> |
| </code> |
| </li> |
| <li> |
| the message |
| <code>Message goes here</code> |
| </li> |
| </ul> |
| The component declaration consists of the <em>Wicket</em> identifier |
| <code>wicket</code> and the component identifier <code>message</code>. |
| The component identifier should be the same as the name of the component you |
| defined in your <code>WebPage</code>. The message between the |
| <code><![CDATA[<span>]]></code> tags is removed when the component renders |
| its message. The final content of the component is determined by your Java |
| code. |
| </p> |
| </subsection> |
| |
| <subsection name="web.xml"> |
| <p> |
| In order to deploy our <em>HelloWorld</em> program, we need to make our application |
| known to the application server by means of the <tt>web.xml</tt> file. |
| </p> |
| <source><![CDATA[<?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE web-app |
| PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" |
| "http://java.sun.com/dtd/web-app_2_3.dtd"> |
| |
| <web-app> |
| <display-name>Wicket Examples</display-name> |
| <servlet> |
| <servlet-name>HelloWorldApplication</servlet-name> |
| <servlet-class>wicket.protocol.http.WicketServlet</servlet-class> |
| <init-param> |
| <param-name>applicationClassName</param-name> |
| <param-value>wicket.examples.helloworld.HelloWorldApplication</param-value> |
| </init-param> |
| <load-on-startup>1</load-on-startup> |
| </servlet> |
| <servlet-mapping> |
| <servlet-name>HelloWorldApplication</servlet-name> |
| <url-pattern>/helloworld</url-pattern> |
| </servlet-mapping> |
| </web-app>]]></source> |
| <p> |
| In this definition you see the <em>Wicket</em> servlet defined, which handles all |
| requests. In order to let <em>Wicket</em> know which application is available, |
| only the <code>applicationClassName</code> servlet parameter is needed. |
| </p> |
| </subsection> |
| <subsection name="Ready to deploy"> |
| <p> |
| That's it. No more configuration necessary! All you need to do now is to |
| deploy the web application into your favourite application server. |
| </p> |
| <p> |
| As you can see: no superfluous XML configuration files are needed to enable |
| a <em>Wicket</em> application. Only the markup (HTML) files, the Java class |
| files and the required <code>web.xml</code> were needed to create this |
| application. |
| </p> |
| </subsection> |
| </section> |
| </body> |
| </document> |