で何も変更する必要はありませんweb.xml
。そこで定義されている唯一の関連する設定は<filter-mapping>
要素です
<filter-mapping>
<filter-name>HelloWorldApplication</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
これは、アプリケーション (そのコンテキスト ルート) に対して行われたすべての要求 ( /*
) を Wicket フィルター (サーブレットと考えてください) にマップします。Wicket フィルターは、すべての Wicket 要求を処理し、それらを適切なメソッド (コンポーネント コンストラクター、イベント ハンドラー メソッド、等。)。
この例では、が で定義されているホームページであるためHelloWorld
、リクエスト時にが表示されます。は webapp のコンテキスト ルートであるため、Wicket は で定義されたページに自動的に移動します。http://localhost:8080/helloworld/
HelloWorld
WebApplication
helloworld
WebApplication#getHomePage()
@Override
public Class getHomePage() {
return HelloWorld.class;
}
helloworld
ここにアプリケーションのコンテキスト ルートがあることに注意してください。したがって、何らかの基準に応じてクラスまたは別のクラスを返すロジックを定義したい場合を除きgetHomePage()
(これが目的だとは思わないでください)、効果的に機能しHelloWorld
ます。
さて、あなたの質問に答えて、Wicket を使用すると、(ブックマーク可能な) ページを URL にマウントできますWebApplication#mountPage()
:
public class HelloWorldApplication extends WebApplication {
@Override
protected void init() {
mountPage("/helloworld", HelloWorld.class);
mountPage("/helloworld2", HelloWorld2.class);
}
@Override
public Class getHomePage() {
return HelloWorld.class;
}
}
これにより、ホームページであるhttp://localhost:8080/helloworld/
サーブクラスが作成されます。HelloWorld
しかし、それを要求することもできhttp://localhost:8080/helloworld/helloworld
ます。リクエストhttp://localhost:8080/helloworld/helloworld2
は効果的に役立ちHelloWorld2
ます。
http://localhost:8080/helloworld2/
または、本当にを提供したい場合はHelloWorld2
、もちろん独自のweb.xml
と context-root を使用して、別の webapp をデプロイする必要がありますhelloworld2
。