で何も変更する必要はありません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/HelloWorldWebApplicationhelloworldWebApplication#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。