覚え書き
手順
サンプルアプリケーションをインストールする。
% cd ~/Documents/workspace % mvn archetype:create -DarchetypeGroupId=org.apache.wicket -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=1.4.3 -DgroupId=jp.gihyo.wicket -DartifactId=wicket-sample % cd wicket-sample
サンプルアプリケーションを起動する。
% mvn jetty:run
http://localhost:8080/wicket-sample/ にブラウザでアクセスする。
所要時間は 5 分程度
ちょっと中身をのぞいてみる。
yoheia% pwd /Users/yoheia/Documents/workspace/wicket-sample yoheia% find . . ./pom.xml ./src ./src/main ./src/main/java ./src/main/java/jp ./src/main/java/jp/gihyo ./src/main/java/jp/gihyo/wicket ./src/main/java/jp/gihyo/wicket/HomePage.html ./src/main/java/jp/gihyo/wicket/HomePage.java ./src/main/java/jp/gihyo/wicket/WicketApplication.java ./src/main/resources ./src/main/resources/log4j.properties ./src/main/webapp ./src/main/webapp/WEB-INF ./src/main/webapp/WEB-INF/web.xml ./src/test ./src/test/java ./src/test/java/jp ./src/test/java/jp/gihyo ./src/test/java/jp/gihyo/wicket ./src/test/java/jp/gihyo/wicket/Start.java ./src/test/java/jp/gihyo/wicket/TestHomePage.java ./target ./target/classes ./target/classes/jp ./target/classes/jp/gihyo ./target/classes/jp/gihyo/wicket ./target/classes/jp/gihyo/wicket/HomePage.class ./target/classes/jp/gihyo/wicket/HomePage.html ./target/classes/jp/gihyo/wicket/WicketApplication.class ./target/classes/log4j.properties ./target/test-classes ./target/test-classes/jp ./target/test-classes/jp/gihyo ./target/test-classes/jp/gihyo/wicket ./target/test-classes/jp/gihyo/wicket/Start.class ./target/test-classes/jp/gihyo/wicket/TestHomePage.class ./target/work ./target/work/jsp
package jp.gihyo.wicket; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.WebPage; /** * Homepage */ public class HomePage extends WebPage { private static final long serialVersionUID = 1L; // TODO Add any page properties or variables here /** * Constructor that is invoked when page is invoked without a session. * * @param parameters * Page parameters */ public HomePage(final PageParameters parameters) { // Add the simplest type of label add(new Label("message", "If you see this message wicket is properly configured and running")); // TODO Add your page's components here } }
<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" > <head> <title>Wicket Quickstart Archetype Homepage</title> </head> <body> <strong>Wicket Quickstart Archetype Homepage</strong> <br/><br/> <span wicket:id="message">message will be here</span> </body> </html>
package jp.gihyo.wicket; import org.apache.wicket.protocol.http.WebApplication; /** * Application object for your web application. If you want to run this application without deploying, run the Start class. * * @see jp.gihyo.wicket.Start#main(String[]) */ public class WicketApplication extends WebApplication { /** * Constructor */ public WicketApplication() { } /** * @see org.apache.wicket.Application#getHomePage() */ public Class<HomePage> getHomePage() { return HomePage.class; } }
- /src/main/resources/log4j.properties
log4j.appender.Stdout=org.apache.log4j.ConsoleAppender log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n log4j.rootLogger=INFO,Stdout log4j.logger.org.apache.wicket=INFO log4j.logger.org.apache.wicket.protocol.http.HttpSessionStore=INFO log4j.logger.org.apache.wicket.version=INFO log4j.logger.org.apache.wicket.RequestCycle=INFO
- src/main/webapp/WEB-INF/web.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <display-name>wicket-sample</display-name> <!-- There are three means to configure Wickets configuration mode and they are tested in the order given. 1) A system property: -Dwicket.configuration 2) servlet specific <init-param> 3) context specific <context-param> The value might be either "development" (reloading when templates change) or "deployment". If no configuration is found, "development" is the default. --> <filter> <filter-name>wicket.wicket-sample</filter-name> <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> <init-param> <param-name>applicationClassName</param-name> <param-value>jp.gihyo.wicket.WicketApplication</param-value> </init-param> </filter> <filter-mapping> <filter-name>wicket.wicket-sample</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
ちょっといじってみる。
yoheia% vi src/main/java/jp/gihyo/wicket/WicketApplication.java package jp.gihyo.wicket; import org.apache.wicket.protocol.http.WebApplication; /** * Application object for your web application. If you want to run this application without deploying, run the Start class. * * @see jp.gihyo.wicket.Start#main(String[]) */ public class WicketApplication extends WebApplication { /** * Constructor */ public WicketApplication() { } /** * @see org.apache.wicket.Application#getHomePage() */ public Class<HomePage> getHomePage() { return HomePage.class; } @Override public void init() { super.init(); mountBookmarkablePage("/top", HomePage.class); } } yoheia% vi src/main/java/jp/gihyo/wicket/HomePage.java package jp.gihyo.wicket; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.WebPage; /** * Homepage */ public class HomePage extends WebPage { private static final long serialVersionUID = 1L; // TODO Add any page properties or variables here /** * Constructor that is invoked when page is invoked without a session. * * @param parameters * Page parameters */ public HomePage(final PageParameters parameters) { // Add the simplest type of label add(new Label("message", "id:t_yano++; id:yoshiori++;")); // TODO Add your page's components here } }
Jetty を再起動する。
Ctrl + C yoheia% mvn jetty:run
http://localhost:8080/wicket-sample/top にブラウザでアクセスしてみる。